2012-05-03 40 views
1

我試圖在我的Android應用程序中使用jCIFS版本1.3.17 JAR文件。該應用程序編譯正確,並部署到我的手機。當我的應用程序試圖使用JCIFS庫我收到以下錯誤信息:在Android中使用jCIFS時出現VerifyError

E/dalvikvm(3176): Could not find class 'jcifs.smb.SmbFile', referenced from method com.test.androidapp.service.BackgroundService.copyFiles 
W/dalvikvm(3176): VFY: unable to resolve new-instance 94 (Ljcifs/smb/SmbFile;) in Lcom/test/androidapp/service/BackgroundService; 
D/dalvikvm(3176): VFY: replacing opcode 0x22 at 0x0001 
W/dalvikvm(3176): VFY: unable to resolve exception class 93 (Ljcifs/smb/SmbException;) 
W/dalvikvm(3176): VFY: unable to find exception handler at addr 0x6c 
W/dalvikvm(3176): VFY: rejected Lcom/test/androidapp/service/BackgroundService;.copyFiles()Z 
W/dalvikvm(3176): VFY: rejecting opcode 0x0d at 0x006c 
W/dalvikvm(3176): VFY: rejected Lcom/test/androidapp/service/BackgroundService;.copyFiles()Z 
W/dalvikvm(3176): Verifier rejected class Lcom/test/androidapp/service/BackgroundService; 
W/dalvikvm(3176): Class init failed in newInstance call (Lcom/test/androidapp/service/BackgroundService;) 
D/AndroidRuntime(3176): Shutting down VM 
W/dalvikvm(3176): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0) 
E/AndroidRuntime(3176): FATAL EXCEPTION: main 
E/AndroidRuntime(3176): java.lang.VerifyError: com.test.androidapp.service.BackgroundService 
E/AndroidRuntime(3176): at java.lang.Class.newInstanceImpl(Native Method) 
E/AndroidRuntime(3176): at java.lang.Class.newInstance(Class.java:1409) 
E/AndroidRuntime(3176): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2174) 
E/AndroidRuntime(3176): at android.app.ActivityThread.access$2500(ActivityThread.java:132) 
E/AndroidRuntime(3176): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1102) 
E/AndroidRuntime(3176): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(3176): at android.os.Looper.loop(Looper.java:150) 
E/AndroidRuntime(3176): at android.app.ActivityThread.main(ActivityThread.java:4263) 
E/AndroidRuntime(3176): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(3176): at java.lang.reflect.Method.invoke(Method.java:507) 
E/AndroidRuntime(3176): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
E/AndroidRuntime(3176): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
E/AndroidRuntime(3176): at dalvik.system.NativeStart.main(Native Method) 
W/ActivityManager( 129): Force finishing activity com.test.androidapp/.activity.MainActivity 

有人可以解釋爲什麼Android是沒有找到JCIFS?

回答

3

假設你在的Android SDK工具(如果適用,ADT插件爲Eclipse),用於添加第三方JAR正當程序的最新版本是:

第1步:在您的項目

第2步創建一個libs/目錄:將JAR在libs/目錄

注意,你不需要惹構建路徑或任何東西 - 就是現在在Eclipse中自動處理,只是因爲它從一開始就一直用於命令行構建。

這個錯誤就像您的JAR在編譯時可用,但未被封裝在您的APK中,比如知道JAR的Eclipse(例如,通過手動構建路徑調整),但Android工具不知道JAR。

+0

謝謝,這工作。 –