我的应用程序引用了HoloEverywhere和SherlockActionBar,它们都是工作空间项目。当我为应用程序启用Proguard时,崩溃会导致这些错误:
11-15 11:50:11.090: E/AndroidRuntime(24823): Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: <init> [class android.app.Activity, int]
11-15 11:50:11.090: E/AndroidRuntime(24823): at com.actionbarsherlock.a.a(Unknown Source)
11-15 11:50:11.090: E/AndroidRuntime(24823): at org.holoeverywhere.a.a.l(Unknown Source)
11-15 11:50:11.090: E/AndroidRuntime(24823): at org.holoeverywhere.a.a.setContentView(Unknown Source)
这是因为我只为应用程序启用了Proguard而不启用其他工作空间项目HE和ABS吗?
我在sdk中使用默认的proguard-project.txt,并没有添加任何其他规则。
答案 0 :(得分:15)
不,你没有。
使用这些规则来保持引用的类不被混淆。
-keep class com.actionbarsherlock.** {*;}
-keep class org.holoeverywhere.** {*;}
答案 1 :(得分:0)
这也有帮助
## ActionBarSherlock 4.4.0 specific rules ##
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }
-keepattributes *Annotation*
## hack for Actionbarsherlock 4.4.0, see https://github.com/JakeWharton/ActionBarSherlock/issues/1001 ##
-dontwarn com.actionbarsherlock.internal.**