ala*_*how 13 android proguard android-appcompat android-support-library
在构建应用程序(使用minifyEnabled为true)之后,我已经从v22.2.1更新了支持库到v23.0.0我有"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)
Run Code Online (Sandbox Code Playgroud)
调试应用程序或禁用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>
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个问题的答案:升级到AppCompat v22.1.0并且现在获得IllegalArgumentException:AppCompat不支持当前的主题功能,我认为这不是重复的问题.
我该如何解决?当然,启用proguard
该错误消息可能会产生误导。请留意类似这样的 Proguard 警告:
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)
Run Code Online (Sandbox Code Playgroud)
尽管存在错误,但如果存在classes.jar先前构建的文件,构建将会成功,但干净的构建将按预期失败。
就我而言,修复 Proguard 警告还删除了 AppCompat 异常。
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |