提问人:Bitwise DEVS 提问时间:9/20/2023 最后编辑:Bitwise DEVS 更新时间:9/20/2023 访问量:670
R8 和 ProGuard:使用@Keep注释的数据类中缺少类错误
R8 and ProGuard: Missing class error in data class that is using @Keep annotation
问:
出于某种原因,我们的一个数据类模型在构建过程中被混淆或删除,我们不得不向其添加注释才能工作。@Keep
@Keep
data class CommonNotification(
val title: String,
val description: String,
val channel: String,
val action: String = DEFAULT_VALUE_STRING,
val actionData: String? = DEFAULT_VALUE_STRING,
val bigImage: String? = DEFAULT_VALUE_STRING,
val environment: String = BuildConfig.BUILD_TYPE
)
但是运行失败并出现此错误./gradlew lint
运行 R8 时检测到缺少类。请添加缺少的类或应用在
/Users/user/Desktop/Projects/Mobile/Android/App/app/libs/AndroidCommon/build/outputs/mapping/debug/missing_rules.txt.
ERROR: R8: Missing class java.lang.invoke.StringConcatFactory (referenced from: java.lang.String com.project.android.common.data.remote.responses.notifications.CommonNotification.toString())
知道问题和解决方案是什么吗?
我尝试了这个问题跟踪器的解决方案
在规则文件中添加但获取警告/错误。我正在使用 AGP-dontwarn java.lang.invoke.StringConcatFactory
Unresolved class name
JAVA VERSION_17
8.1.1
答:
0赞
Bitwise DEVS
9/20/2023
#1
添加此规则后,该问题已修复:
-dontwarn java.lang.invoke.StringConcatFactory
您可能会收到一个红色错误/警告,因为它无法找到包,但这就是实际的作用,从 lint 检查中排除项目构建中不存在的类。Unresolved class name
dontwarn
引用:
评论
-dontwarn java.lang.invoke.StringConcatFactory
Unresolved class name