针对Android java.lang.NoClassDefFoundError 某个问题的解决

来源:互联网 发布:java遍历hashmap 编辑:程序博客网 时间:2024/05/20 20:04

今天在玩android应用的时候突然出现了一个异状:

在windows7下边编译运行一个工程没有问题,但是放到mac下边以后会出现:

编译的时候没有问题,但是运行的时候会提示java.lang.NoClassDefFoundError,这个提示是针对的一个第三方库出现的,很是诡异,我尝试了google上边多个方法都不见效果。

偶然的灵光一现,因为之前在mac上配置cocos2d-x的时候由于文件权限的问题导致模板文件读取失败的先例,遂查看这个第三方库文件的权限

localhost:libs reasonpun$ ls -l
total 1488
-rw-r–r– 1 reasonpun staff 29173 5 28 17:24 android-async-http-1.4.3.jar
-rw-r–r– 1 reasonpun staff 385685 3 26 15:51 android-support-v4.jar
-rw-r–r– 1 reasonpun staff 24099 5 31 16:42 crouton-1.8.1.jar
-rw-r–r– 1 reasonpun staff 189285 7 2 2012 gson-2.2.2.jar
-rw-r–r– 1 reasonpun staff 122698 5 29 17:47 universal-image-loader-1.8.4.jar

没有可执行权限哦,呵呵,于是乎

localhost:libs reasonpun$ sudo chmod 755 *

localhost:libs reasonpun$ ls -l
total 1488
-rwxr-xr-x 1 reasonpun staff 29173 5 28 17:24 android-async-http-1.4.3.jar
-rwxr-xr-x 1 reasonpun staff 385685 3 26 15:51 android-support-v4.jar
-rwxr-xr-x 1 reasonpun staff 24099 5 31 16:42 crouton-1.8.1.jar
-rwxr-xr-x 1 reasonpun staff 189285 7 2 2012 gson-2.2.2.jar
-rwxr-xr-x 1 reasonpun staff 122698 5 29 17:47 universal-image-loader-1.8.4.jar

执行 clean,编译运行,OK了~~

更新1:
2013-06-04

在mac上调试的好好的,又换回windows以后出现了又一个诡异的问题:
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
[2013-06-03 14:09:06 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

多个文件引用?!!!!
找了半天都没找见哪里有多个引用,于是乎google了多种方法,但都不见效。
又是灵光一现:adt版本是不是不一致,查看一下果然是比mac低一个版本号,当初在mac上因为担心版本的问题升级到了最新,结果windows上的又不一致了,遂下载最新ADT bundle:
adt-bundle-windows-x86_64-20130522

import
调试
又成功了~~

如果出现上述问题的时候大家试试版本的原因,也许会有所帮助~~~~~~

0 0
原创粉丝点击