在发布版本中找不到androidx.annotation.ContentView

时间:2019-02-21 14:00:39

标签: android android-proguard

我正在尝试在发布模式下测试我的应用,我将其保存在我的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)

怎么了?

2 个答案:

答案 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