导出已签名的apk时出现NoSuchMethodError

时间:2011-10-05 11:43:12

标签: android deployment compilation dependencies apk

我尝试编译reddit-is-fun,这是一款适用于Android的reddit阅读器。如果我从ADT启动应用程序(通过调试或只是运行),它将在我的手机上启动并正确运行(HTC Desire)。但是,如果我导出签名和zipaligned包并安装它,它将无法正常工作。 logcat显示Jackson的NoSuchMethodError异常。它是两个jar,存在于存储库中并添加到构建路径中。我确保这两个版本具有相同的版本,甚至用更新的版本替换它们。

我对使用jar库并不熟悉。它们是否“链接”到生成的apk中,就像编译C ++时静态库链接到可执行文件一样?如何确保设备上的应用程序将加载用于编译的相同版本? (这很可能是问题所在。)

2 个答案:

答案 0 :(得分:1)

听起来像Proguard混淆了它。尝试禁用Proguard确认(或将Jackson添加到proguard.cfg中的白名单)

答案 1 :(得分:0)

我认为这意味着您的JAR未正确地从JVM格式转换为Dalvik VM格式。如您所知,Android使用的字节码与普通桌面JVM不同。您应该将JAR从JVM字节码转换为Dalvik的字节码。尝试谷歌“将JVM转换为Dalvik”