当前位置: 首页 > 知识库问答 >
问题:

proguard - AppCompat不支持proguard/minify之后的当前主题功能

严昀
2023-03-14

我已将支持库从v22.2.1更新到v23.0.0,在构建应用程序(minifyEnabled为true)后,我遇到“AppCompat不支持当前主题功能”异常:

08-23 05:46:10.168 19437 19437 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{tm.alashow.dotjpg/tm.alashow.dotjpg.ui.activity.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
08-23 05:46:10.168 19437 19437 E AndroidRuntime:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
08-23 05:46:10.168 19437 19437 E AndroidRuntime:    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2477)
08-23 05:46:10.168 19437 19437 E AndroidRuntime:    at android.app.ActivityThread.-wrap11(ActivityThread.java)
08-23 05:46:10.168 19437 19437 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)

调试应用或禁用前置保护(缩小启用 false)时,不会引发异常。仅当启用了专业警卫时,它才会投掷。

主题:

<style name="Theme.App" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        ...
</style>

Proguard文件:

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }

-keep class android.support.design.widget.** { *; }
-keep interface android.support.design.widget.** { *; }
-dontwarn android.support.design.**
-keep public class * extends android.support.design.widget.CoordinatorLayout$Behavior {
    public <init>(android.content.Context, android.util.AttributeSet);
}

我已经尝试了这个问题的答案:升级到AppCompat v22.1.0,现在得到IllegalArgumentException:AppCompat不支持当前主题功能,我认为这不是重复的问题。

我该如何修复它?当然,启用专业卫士

共有1个答案

濮阳征
2023-03-14

错误消息可能会误导。注意像这样的预警:

Warning: org.acra.ErrorReporter: can't find referenced method 'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' in library class android.app.Notification
Warning: there were 1 unresolved references to library class members.
         You probably need to update the library versions.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Exception while processing task 
java.io.IOException: Please correct the above warnings first.
    at proguard.Initializer.execute(Initializer.java:473)
    at proguard.ProGuard.initialize(ProGuard.java:233)
    at proguard.ProGuard.execute(ProGuard.java:98)
    at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
    at com.android.build.gradle.tasks.AndroidProGuardTask.doMinification(AndroidProGuardTask.java:139)
    at com.android.build.gradle.tasks.AndroidProGuardTask$1.run(AndroidProGuardTask.java:115)
    at com.android.builder.tasks.Job.runTask(Job.java:48)
    at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)
    at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:227)
    at java.lang.Thread.run(Thread.java:745)

尽管有一个错误,如果有一个classes.jar文件来自以前的构建,构建将成功,但干净的构建将按预期失败。

在我的情况下,修复专业警告也删除了应用程序兼容性异常

 类似资料:
  • 我注意到这是一个非常常见的问题,但没有一个解决方案对我有效。这是每个人似乎都参考的主线: 升级到AppCompat v22.1.0,现在获得IllegalArgumentException:app compat不支持当前的主题功能 但我试过运气不好。我错过了什么吗?? 这是我的清单: 这是我的风格: 这是我的基本活动: 这是我的示例活动: 我基本上是直接在我测试的活动上设置主题。我没有在清单中设置

  • 我的应用程序在Android N上运行良好,但在Android M上时崩溃: 奇怪的是,我甚至没有编辑任何与我的应用程序的主题有关的东西,所以这个错误非常奇怪: 致命异常:main Process:com.curlybraceApps.ruchir.Rescuer,PID:20394 java.lang.runtimeException:无法启动活动ComponentInfo{com.curlyb

  • 问题内容: 我试图将项目从Eclipse迁移到Android Studio。终于我能够运行它了,但是在某个时候我遇到了这个异常,而我在谷歌上对此一无所获: 73. MainActivity行是: 请给我建议。 问题答案: 替代@sbaar的答案, 保持到并加入以及和它设置为。 即

  • 我试图将一个项目从Eclipse迁移到Android Studio。最后,我能够运行它,但是在某个时候我得到了这个例外,我在谷歌上没有发现任何关于这个的东西: 73.主要活动是: 如果可以的话,请告诉我。

  • 当我试图用proguard混淆某个应用程序时,我总是会遇到这种错误 我已经更新了Proguard并检查了项目配置文件,但总是出现相同的错误。我正在使用Intellij IDEA的最新版本

  • 我试图在我的Xamarin.Android项目中使用Proguard,但是编译失败,出现错误 Java.io.ioException:无法读取[/library/frameworks/xamarin.android.framork/versions/7.0.0-18/lib/xbuild-frameworks/monoandroid/v7.0/mono.android.jar](无法处理类[And