2012-03-01 42 views
1

下拒絕是logcat的輸出爲運行時異常我的Android應用程序顯示,首先wranings產生之後堆棧跟蹤,當應用程序退出:類的Android應用程序

03-01 12:04:37.663: W/dalvikvm(2285): VFY: unable to resolve exception class 194 (Lcom/google/zxing/WriterException;) 
03-01 12:04:37.663: W/dalvikvm(2285): VFY: unable to find exception handler at addr 0x4c 
03-01 12:04:37.663: W/dalvikvm(2285): VFY: rejected Lcom/beslogic/profile/BLProfileBuilder;.saveProfileAsQRCode (Landroid/app/Activity;Lcom/beslogic/profile/BLProfileModel;Ljava/io/FileOutputStream;)Z 
03-01 12:04:37.663: W/dalvikvm(2285): VFY: rejecting opcode 0x0d at 0x004c 
03-01 12:04:37.663: W/dalvikvm(2285): VFY: rejected Lcom/beslogic/profile/BLProfileBuilder;.saveProfileAsQRCode (Landroid/app/Activity;Lcom/beslogic/profile/BLProfileModel;Ljava/io/FileOutputStream;)Z 
03-01 12:04:37.663: W/dalvikvm(2285): Verifier rejected class Lcom/beslogic/profile/BLProfileBuilder; 





03-01 12:07:31.633: E/AndroidRuntime(2285): FATAL EXCEPTION: main 
    03-01 12:07:31.633: E/AndroidRuntime(2285): java.lang.VerifyError: com.beslogic.profile.BLProfileBuilder 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at com.urbanagenda.UAMemberActivity.completeTransaction(UAMemberActivity.java:401) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at com.beslogic.remotpayment.connection.PostJSONTask.sendTransactionComplete(PostJSONTask.java:175) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at com.beslogic.remotpayment.connection.PostJSONTask.onPostExecute(PostJSONTask.java:162) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at com.beslogic.remotpayment.connection.PostJSONTask.onPostExecute(PostJSONTask.java:1) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at android.os.AsyncTask.finish(AsyncTask.java:417) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at android.os.AsyncTask.access$300(AsyncTask.java:127) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at android.os.Looper.loop(Looper.java:123) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at java.lang.reflect.Method.invokeNative(Native Method) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at java.lang.reflect.Method.invoke(Method.java:521) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651) 
    03-01 12:07:31.633: E/AndroidRuntime(2285):  at dalvik.system.NativeStart.main(Native Method) 

我有一個庫項目BLProfileBuilder所在的地方。這個項目引用了我已經標記爲庫項目的ZXING android項目。還有一個ZXING核心庫的參考。通過添加外部.jar文件,一切都可以正確引用。我的主要應用是針對Android API級別8(2.2),而其他針對2.1。任何提示如何解決這個問題。我遵循了ZXING項目頁面上的所有說明,以及關於添加庫項目和第三方jar文件的Android開發人員指南。

我該如何解決這個問題或追蹤錯誤?

回答

2

如果你在StackOverflow中搜索VerifyError和Android,你會發現一些很好的帖子,可能會幫助你開始像這樣:Android java.lang.VerifyError?我懷疑你會發現,作爲高(但不被接受)的答案表明,重新使用Java中的一些不支持您的API級別的方法。

+1

看看,但我想不通哪種方法。 API級別是我重複檢查的第一件事情之一。我找到了一個解決方案,但它並不優雅,我不得不引用(在我的主應用程序中)包含異常聲明的zxing核心庫(core.jar),即使我的主應用程序根本不使用這些類,我的圖書館項目(BLProfileBuilder)。 – 2012-03-01 19:15:16

+0

啊......好吧,你去吧。如果BLProfileBuilder使用異常類但不包含它,那麼你不得不引用該異常類的第三方jar。 – kabuko 2012-03-01 19:17:20

+0

它包含它,這是令人困惑的部分。爲了解決我在上次評論中所犯的錯誤,我不得不在我的主項目中將ZXING Android項目作爲庫項目引用,儘管它並未使用它。 BLProfileBuuilder具有它所需的所有引用,包括ZXING Android項目和核心庫。 – 2012-03-01 19:22:03

0

嘗試使用Oracle JVM而不是OpenJDK的...爲我解決了這個謎題。