2012-02-22 18 views
3

我遇到了一個問題,這已經阻止了我的工作三天。 :( 當我在Jenkins下使用Ant構建我的Android項目時,APK無法在手機中啓動,並且發生Java.Lang.VerifyError異常 奇怪的是,在同一臺計算機中,eclipse可以構建並創建一個工作的apk通過調用Ant。jenkins和eclipse使用相同的Ant,JDK,Android SDK和proguard。 這應該是Jenkins的一個bug麼?Java.Lang.VerifyError,Jenkins bug?

我發佈了jenkins生成的apk下面的異常信息,我個忙嗎?請告訴我,如果你需要更多的infromation。

java.lang.VerifyError: com.dewmobile.library.connection.network.m 
at com.dewmobile.library.connection.network.s.q(Unknown Source) 
at com.dewmobile.library.connection.network.s.a(Unknown Source) 
at com.dewmobile.library.connection.service.DmConnectionService.e(Unknown Source) 
at com.dewmobile.library.connection.service.DmConnectionService.onCreate(Unknown Source) 
at android.app.ActivityThread.handleCreateService(ActivityThread.java:1966) 
at android.app.ActivityThread.access$2500(ActivityThread.java:121) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:997) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3701) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) 
at dalvik.system.NativeStart.main(Native Method) 
+1

糟糕的proguard設置? AFAIK VerifyError意味着虛擬機在這種情況下無法找到某種方法 – Selvin 2012-02-22 16:01:34

+0

我在progurad上花了相當多的時間,但沒有改變proguard的工作方式。使用相同的progurad sw(4.6)和progurad.cfg,在同一臺計算機上,Eclipse可以創建一個「良好」版本的apk。 – user1226205 2012-02-23 15:10:02

回答

1

java.lang.VerifyError的發生在你對一個編譯各色nt庫,而不是在運行時使用。

我強烈懷疑有一些路徑問題在編譯時挑選錯誤的版本。我建議再次重新訪問所有配置。

+0

是的,我再次檢查了詹金斯的配置,詹金斯的環境設置沒有什麼奇怪的。事實上,jenkins生成的debug apk工作正常,只是發佈apk有問題,看起來它和proguard有關。但eclipse可以使用相同的proguard創建工作發佈版本。這真的很奇怪。我也嘗試在構建發佈apk之前清理jenkins工作區以清除每個潛在的錯誤,但結果是一樣的。 – user1226205 2012-02-23 15:06:44