java.lang.NoSuchMethodException : android. content.res.Resources$Theme.rebase []

标签 java android android-studio kotlin proguard

我设置后minifyEnabled true ,我在发布的应用程序中出现此错误
知道如何解决吗?

2020-07-01 11:51:33.651 30098-30098/? I/ResourcesCompat: Failed to retrieve rebase() method
    java.lang.NoSuchMethodException: android.content.res.Resources$Theme.rebase []
        at java.lang.Class.getMethod(Class.java:2069)
        at java.lang.Class.getDeclaredMethod(Class.java:2047)
        at androidx.core.content.res.ResourcesCompat$ThemeCompat$ImplApi23.rebase(SourceFile:3)
        at androidx.core.content.res.ResourcesCompat$ThemeCompat.rebase(SourceFile:3)
        at androidx.appcompat.app.AppCompatDelegateImpl.attachBaseContext2(SourceFile:32)
        at androidx.appcompat.app.AppCompatActivity.attachBaseContext(SourceFile:1)
        at com.kahkeshan.tv_app.base.BaseActivity.attachBaseContext(SourceFile:1)
        at android.app.Activity.attach(Activity.java:7244)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3080)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3282)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1970)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7156)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975) 
gradle 文件中的设置:
  release {
            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
            pseudoLocalesEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

最佳答案

在您的 ProGuard 配置文件中,您需要添加 -keep缺失方法的规则 rebase() .以下-keep选项可以解决问题;

-keep class android.content.res.Resources$Theme {
  void rebase();
}
使用 ProGuard Playground ,你可以看到你的-keep的效果项目的类树中的选项。它可以帮助您创建微调 -keep解决类似问题的选项。

关于java.lang.NoSuchMethodException : android. content.res.Resources$Theme.rebase [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62671729/

相关文章:

Android Store 到外部或到 SharedPreferences

android - Broadcasts、ContentProviders 和 ContentRecievers 的最佳实践

java - TomEE Intellij 理念 : Remote deploy

java - 使 Eclipse 在 "Problems"选项卡中针对注释中的任务标签显示警告

java - 如何从 java 连接到正在运行的 bigtable 模拟器

java - 与 Play 框架一起使用的 JMS/ActiveMQ 异常

android - 当我获取选项卡的标签时,FragmentTabHost 返回 null

android - 错误: Opening Emulator handleCpuAcceleration after Upgrading Android Studio Arctic Fox

android-studio - 一键伸展树(Splay Tree)中的所有条目

android-studio - 自动导入不适用于 Android Studio 中的 Android 类