5

我的应用程序引用了 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 并没有添加任何额外的规则。

4

2 回答 2

15

你不可以。

使用这些规则来保持引用的类不被混淆。

-keep class com.actionbarsherlock.** {*;}
-keep class org.holoeverywhere.** {*;}
于 2012-11-15T17:26:47.687 回答
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.**
于 2015-01-06T13:08:27.340 回答