0

从 Eclipse 导出签名包后,当调用其中一项活动时,应用程序开始崩溃。

05-30 23:05:43.814: E/AndroidRuntime(11578): FATAL EXCEPTION: main
05-30 23:05:43.814: E/AndroidRuntime(11578): java.lang.NoClassDefFoundError: com.encryptomatic.alockbin.ItemListActivity

我完全排除了该类与所有成员的混淆,我看到它列在 seed.txt 中。

与其他活动的唯一区别是这个活动扩展了 SherlockFragmentActivity。我使用以下方法完全排除了依赖项:

-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 
-keep class com.actionbarsherlock.** { *; } 
-keep interface com.actionbarsherlock.** { *; } 
-keepattributes *Annotation*

这里有什么问题?如何检查我的课程是否真的以 apk 结尾?

4

2 回答 2

2

快速回答是:ProGuard 无法检测到com.encryptomatic.alockbin.ItemListActivity您的代码使用了该类,因此已将其删除。如果动态加载或以不同的不寻常方式加载,则可能会发生这种情况。

因此,如果您使用 ProGuard,您应该简单地将提到的类作为类添加到“保留”:

 -keep class com.encryptomatic.alockbin.ItemListActivity { public *; } 

然后重新构建APK并尝试它。测试您的应用程序的所有功能,因为很可能还有其他必须配置为保留的类。如果您已确定所有类,还请检查 ProGuard 警告,因为它们通常包含其他可能明智的保留类。

于 2013-05-31T07:04:24.043 回答
0

android-support-v4.jar 未设置为在项目属性中的 Java 构建路径下导出:

右键单击项目 -> 属性 -> Java 构建路径 -> 订购和导出 -> 选中复选框“Android 私有库”(android-support-v4.jar 驻留在库选项卡上的节点)

于 2013-05-31T07:49:00.207 回答