2011-10-05 60 views
0

我試圖編譯reddit-is-fun,這是一款適用於Android的reddit閱讀器。如果我從ADT啓動應用程序(無論是通過調試還是簡單運行),它都會在我的手機(HTC Desire)上正常啓動並運行。但是,如果我導出簽名和zipaligned包並安裝它,它將不起作用。 logcat顯示Jackson的NoSuchMethodError異常。它是兩個罐子,存在於存儲庫中並添加到構建路徑中。我確信兩者有相同的版本,甚至用更新的版本替換它們。導出已簽名的apk時出現NoSuchMethodError

我不是很熟悉使用jar庫。它們是否被「鏈接」到結果apk中,就像編譯C++時靜態庫鏈接到可執行文件一樣?如何確保設備上的應用程序將加載用於編譯的相同版本? (這很可能是問題)。

回答

1

聽起來像Proguard混淆正在打破它。嘗試禁用Proguard確認(或將0123添加到proguard.cfg的白名單中)

+0

是的,這絕對是迷惑。我如何將整個圖書館列入白名單?問題是調用被混淆了,但是庫本身不是(我在想這個,因爲找不到的方法被命名爲a.c.f.d)。 –

+0

您需要在'-keep class org.codehaus.jackson。*'到'proguard.cfg'中添加一行。 – Dave

+0

不幸的是,這似乎並不奏效。 –

0

我認爲這意味着您的JAR無法從JVM格式正確轉換爲Dalvik VM格式。如您所知,Android使用的字節碼不同於普通的桌面JVM。您應該將您的JAR從JVM字節碼轉換爲Dalvik的字節碼。嘗試谷歌「轉換JVM到達爾維克」

相關問題