Kir*_*man 5 reflection android proguard kotlin
这是一个非常简单的类:
class MainActivity : AppCompatActivity() {
val prop: String = "test"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("MainActivity", ::prop.name)
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用 ProGuard 使用以下规则运行此应用程序:
-dontwarn kotlin.**
-dontwarn org.w3c.dom.events.*
-dontwarn org.jetbrains.kotlin.di.InjectorForRuntimeDescriptorLoader
Run Code Online (Sandbox Code Playgroud)
我得到这个异常:
a.d.g: Property 'prop' not resolved in class com.cypressworks.kotlinreflectionproguard.MainActivity
Run Code Online (Sandbox Code Playgroud)
我需要应用哪些 ProGuard 规则才能使其正常工作?
如果 ProGuard 正在删除您的属性,则该dontwarn规则将仅隐藏警告消息。你需要的是实际告诉 ProGuard 保留它。
一种可能的方法是:
-keepclassmembers public class com.cypressworks.kotlinreflectionproguard.** {
public * *;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3771 次 |
| 最近记录: |