2012-03-01 57 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的...为我解决了这个谜题。