[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)
【原因】:我的 ADT 版本是 v15 的,而同事的 ADT 是 v20 的,引用的 jar 包在工程 lib 下。Android ADT v17+ 引用第三方 jar 包的时候 lib 文件夹是需要改成 libs 文件夹的~,重新命名,重新引用,编译,搞定~
至于查看 ADT 版本:eclipse -> help -> Install New Software -> already installed
参考:http://blog.csdn.net/aomandeshangxiao/article/details/7552109
【注】以此警戒自己!