【发布时间】:2015-11-16 16:44:41
【问题描述】:
我已将支持库从 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)
在调试应用程序或禁用 proguard (minifyEnabled false) 时,不会抛出异常。 只有在启用 proguard 时才会抛出。
主题:
<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);
}
我已经尝试过这个问题的答案:Upgraded to AppCompat v22.1.0 and now getting IllegalArgumentException: AppCompat does not support the current theme features,我认为这不是重复的问题。
我该如何解决?当然,启用 proguard
【问题讨论】:
-
你找到解决办法了吗?
-
@bjornson no :( 你有同样的问题还是什么?
-
@bjornson 刚刚降级到旧版本 22.2.1
-
我想我也必须这样做...谢谢
-
找到了解决方案 :) 有一个名为 AppTheme 的默认主题优先 - stackoverflow.com/a/32616372/380451
标签: android proguard android-support-library android-appcompat