从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
我完全将该类与所有成员的混淆排除在外,我看到它在seeds.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结束?
答案 0 :(得分:1)
快速回答是:ProGuard无法检测到您的代码使用了类com.encryptomatic.alockbin.ItemListActivity
,因此已将其删除。如果动态加载或以不同的方式加载,就会发生这种情况。
因此,如果您使用ProGuard,您只需将提及的类作为类添加到“keep”:
-keep class com.encryptomatic.alockbin.ItemListActivity { public *; }
然后重新构建APK并尝试它。测试应用的所有功能,因为很可能还有其他类需要配置才能保留。如果您已经确定所有类别,也请检查ProGuard警告,因为它们通常包含可能明智的其他类别。
答案 1 :(得分:0)
android-support-v4.jar未设置为在项目属性中的Java Build Path下导出:
右键点击Project - >属性 - > Java构建路径 - >订单和出口 - >选中复选框“Android私有库”(android-support-v4.jar驻留在“库”选项卡上的节点)