我正在尝试在发布模式下测试我的应用,我将其保存在我的proguard配置中:
-keep class androidx.annotation.**
但是该应用总是以某种方式崩溃:
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/annotation/ContentView;
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:123)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:275)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:85)
怎么了?
答案 0 :(得分:0)
我发疯了,试图弄清楚为什么我突然也得到了那个错误。深入研究模块的build.gradle
后,我注意到了这一点,我什至不记得为什么必须强制执行这些解决方案策略的原因。
configurations.all {
resolutionStrategy {
force deps.kotlin.stdlib
force deps.androidx.annotation <-- REMOVE THIS LINE
}
}
移除force deps.androidx.annotation
解决了该问题!
这些是值
kotlin.stdlib = "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin"
androidx.annotation = "androidx.annotation:annotation:$versions.annotation"
这是与 androidx 不兼容的错误。
希望这会有所帮助!
答案 1 :(得分:0)
ContenView
最近才添加到 androidx.annotation:annotation 库中。
并将成为 1.1.x 版本
因此解决方案是使用最新的注释库,该库在编写 1.1.0-rc1
时implementation 'androidx.annotation:annotation:1.1.0-rc01'
有关详细信息,请参见相关的提交。 Android Open Source Project - Add a @ContentView annotation to ComponentActivity, Fragment