[Android 笔记] ADT v17+读取工程写 lib 上jar 包出现 java.lang.NoClassDefFoundError 有关问题

[Android 笔记] ADT v17+读取工程写 lib 下jar 包出现 java.lang.NoClassDefFoundError 问题

       很友好的公司,即将离职了,唉 考上本科继续读书,不然应该会做久一点,毕竟公司人情味很好,大家做人也不错!交付了一个人开发4个月的项目,基于 Launcher 源代码修改,动态更新 widget 配置,其他等等!交付的时候我把整个项目拷贝给同事,一运行就出现了如下错误:

08-22 14:33:32.709: E/dalvikvm(1966): Could not find class 'com.google.zxing.MultiFormatWriter', referenced from method com.changyang.app.util.Encode2dUtil.creat2DCode
08-22 14:33:32.719: E/AndroidRuntime(1966): FATAL EXCEPTION: main
08-22 14:33:32.719: E/AndroidRuntime(1966): java.lang.NoClassDefFoundError: com.google.zxing.MultiFormatWriter
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at com.changyang.app.util.Encode2dUtil.creat2DCode(Encode2dUtil.java:24)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at com.changyang.app.Code2dActivity.init(Code2dActivity.java:49)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at com.changyang.app.Code2dActivity.onCreate(Code2dActivity.java:29)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.app.ActivityThread.access$2300(ActivityThread.java:125)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.os.Handler.dispatchMessage(Handler.java:99)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.os.Looper.loop(Looper.java:123)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at android.app.ActivityThread.main(ActivityThread.java:4627)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at java.lang.reflect.Method.invokeNative(Native Method)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at java.lang.reflect.Method.invoke(Method.java:521)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-22 14:33:32.719: E/AndroidRuntime(1966): 	at dalvik.system.NativeStart.main(Native Method)


       里面我调用了 Zxing 操作生成二维码,结果爆出 java.lang.NoClassDefFoundError 问题,一看就知道 jar 包问题~,好,马上重新引用 core.jar 包(Zxing),结果编译没问题,可结果还是出现这个问题,可是我的机器上面是没问题的,百思不得其解 .. 可是最后还是解决了:

原因】:我的 ADT 版本是 v15 的,而同事的 ADT 是 v20 的,引用的 jar 包在工程 lib 下。Android ADT v17+ 引用第三方 jar 包的时候 lib 文件夹是需要改成 libs 文件夹的~,重新命名,重新引用,编译,搞定~


至于查看 ADT 版本:eclipse -> help -> Install New Software -> already installed 

[Android 笔记] ADT v17+读取工程写 lib 上jar 包出现 java.lang.NoClassDefFoundError 有关问题

参考:http://blog.csdn.net/aomandeshangxiao/article/details/7552109

【注】以此警戒自己!