【发布时间】:2019-04-30 11:01:50
【问题描述】:
我有一个 Kotlin 类,伴随对象中有一些变量。启用 proguard 后,变量不会被访问。
class Test{
......
companion object {
const val USER_NAME = "user_name"
.....
}
.....
}
Proguard 规则包括:-
-keep class kotlin.** { *; }
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
<fields>;
}
-keepclassmembers class kotlin.Metadata {
public <fields>;
public <methods>;
}
-keepclassmembers class * {
static final % *;
static final java.lang.String *;
}
【问题讨论】:
-
您是否遇到运行时错误,如果是,请将错误和堆栈跟踪作为您问题的一部分发布。
-
不,不是运行时错误,而是编译时错误。在尝试构建我的项目时,我收到错误未解决的参考:USER_NAME。
-
在这种情况下,用
@JvmStatic注释没有帮助吗? -
我已经尝试添加它,但我想在这种情况下我们需要在与@JvmStatic 相关的 proguard 中添加一些规则。我试图找到它,但找不到。
-
引用变量的代码是什么样的,编译器给出的确切错误信息是什么,这些都是要添加到您的问题中的重要细节。