这是一个非常简单的课程:
class MainActivity : AppCompatActivity() {
val prop: String = "test"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("MainActivity", ::prop.name)
}
}
如果我使用以下规则使用ProGuard运行此应用程序:
-dontwarn kotlin.**
-dontwarn org.w3c.dom.events.*
-dontwarn org.jetbrains.kotlin.di.InjectorForRuntimeDescriptorLoader
我得到了这个例外:
a.d.g: Property 'prop' not resolved in class com.cypressworks.kotlinreflectionproguard.MainActivity
我需要申请哪些ProGuard规则才能使其正常工作?
答案 0 :(得分:1)
如果ProGuard删除了您的属性,dontwarn
规则将仅隐藏警告消息。你需要的是真正告诉ProGuard保留它。
一种可能的方法是:
-keepclassmembers public class com.cypressworks.kotlinreflectionproguard.** {
public * *;
}