2012-04-05 37 views
1

我想在我的android項目中使用zip4j jar文件來密碼保護應用程序中的zip文件。複製了lib文件夾中的jar文件&,將它添加到構建路徑中。代碼編譯得很好。但是當我運行該項目時,它會產生VerifyError。Android + Zip4j-1.3.1 jar引發VerifyError

注意:如果我將源代碼添加到項目而不是jar,它工作正常。

E/dalvikvm(1502): Could not find class 'net.lingala.zip4j.core.ZipFile', referenced from method a.test.zip.ZipHelper.zipFilesWithStandardZipEncryption 
W/dalvikvm(1502): VFY: unable to resolve new-instance 45 (Lnet/lingala/zip4j/core/ZipFile;) in La/test/zip/ZipHelper; 
D/dalvikvm(1502): VFY: replacing opcode 0x22 at 0x002a 
W/dalvikvm(1502): VFY: unable to resolve exception class 46 (Lnet/lingala/zip4j/exception/ZipException;) 
W/dalvikvm(1502): VFY: unable to find exception handler at addr 0x78 
W/dalvikvm(1502): VFY: rejected La/test/zip/ZipHelper;.zipFilesWithStandardZipEncryption (Landroid/content/Context;)V 
W/dalvikvm(1502): VFY: rejecting opcode 0x0d at 0x0078 
W/dalvikvm(1502): VFY: rejected La/test/zip/ZipHelper;.zipFilesWithStandardZipEncryption (Landroid/content/Context;)V 
W/dalvikvm(1502): Verifier rejected class La/test/zip/ZipHelper; 
D/AndroidRuntime(1502): Shutting down VM 
W/dalvikvm(1502): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 

回答

2

你把你的jar文件放在哪裏? 沒有必要,但在某些情況下,它的工作原理如下:您需要將您的jar放在資產文件夾中。然後你配置你的Java構建路徑。從assets文件夾中添加jar,然後(在eclipse中,獲取命令並導出選項卡並檢查jar文件)導出jar文件。它會自動將其添加到您的應用程序庫文件夾中。我不知道爲什麼,但是在其中一個應用程序中,它沒有反過來工作(將lib中的jar文件複製並添加到buildpath中)。 你也可以改變你的java編譯器。

+0

好的。它可能並不總是將一個副本放在lib文件夾中。 :)所以只需複製並粘貼 – cagla 2012-04-12 06:46:07

+0

謝謝,將文件添加到資產文件夾工作。但通常我一直在將jar文件添加到lib和他們的工作。 – Shabbir 2012-04-16 04:38:50