android导入第三方包所遇到的NoClassDefFoundError错误

在eclipse开发Android项目时出现的很多问题都可以使用Project———>clean来轻易解决。

但如果出现说Android库找不到,或者不小心remove了Android系统库,怎么重新添加Android系统库呢?在eclipse里面的Java Build Path里面是没法添加例如Android 2.1这样定义好的系统库。而我尝试手动添加SDK 文件夹里面的Android.jar,结果出现了Conversion to Dalvik format failed with error 1问题了。折腾了一番后,很多网友都说用Project clean可以解决,但对我的情况来说,没有用处。 在百度找到解决方法了: 修改项目classpath文件,这让我明白了,直接从其他正常项目里面把<!– 注意,这个.classpath文件在eclipse工作空间的硬盘存放位置对应工程项目目录下面–>

<classpathentry kind="lib" path ="自定义jar的地址" />修改成

<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>。这样子刷新项目,Android系统库Android 2.1回来了,那个错误也解决了。

————————————————————————————————————————–

这几天又遇到这样的问题了,但是.classpath文件里面已经包含了上面的con Path,后来在论坛()上找到新方法:

project -> properties -> android label, check a target from the project build target list<!– 这样有时候还是不能去掉错误,这时候注意,在进入project -> properties -> android后,下面有一个is library项,,把它勾上,再点击确定错误就OK了,我的错误就是这样解决的,一开始按照上面以及后面的方法都解决不了,最后我看到有一个is library项,把它勾上再确定试一下OK,错误没了–>

============================================================================

附:上网上广为流传的解决方法:conversion to dalvik format failed with error 1的解决办法

android低版本工程(如1.5)放到高版本环境中(如2.2)可能会上述错误,解决方法如下:

1、如果不修改android sdk版本,则使用project clean 命令作用于某工程即可。 (该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级)

2、如果修改android sdk版本,则需要以下几个步骤: 1) 修改SDK 选择工程,build path –> configure build path —> library 删除引用的低版本SDK, 然后add External JARs,选择高版本SDK,OK,保存

2) 修改classpath文件

该文件可能存在该项: <classpathentry kind="lib" path ="你所指定的高版本的地址" 把她修改成<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" /> 3) 修改AndroidManifest.xml 在AndroidManifest.xml文件中,application标签后添加<uses-sdk android:minSdkVersion="3"></uses-sdk> 4) 修改default.properties(很重要) 该文件最后一行(前面没用#的)target=android-3 该成target=android-8,保存。 再看看你的工程和新建的android 2.2的工程结构就一样了。

————————————————————————————————————————————————————-

貌似这样做还真把这个错误给解决了,反正我把progect –properties–android 下的 is library够选上,果然错误就没了,可是运行起来还是会报错。

现在我才发现原来错误不是在eclipse里的build path内。

我尝试着修改了一下电脑java的环境变量,有了惊奇的发现:

在我的电脑的环境变量中,classpath 原本是空的,我添加了如下的变量:

.;C:\Program Files\Java\jdk1.5.0_17\lib;C:\Program Files\Java\jdk1.5.0_17\lib\tools.jar

尤其是开始的.;这个是最为重要的。

少了 < .; > 就造成巨大的差别在沒有做任何设定之下 , 预设的CLASSPATH就是一个.这个.代表 命令提示字元的当前目录没设定比设定错误还要好一点(对新手而言) , 只要 .class 在当前目录 , 还是可以执行程序的但是你若下了设定SET CLASSPATH=C:"j2sdk1.4.1_03"lib;C:"j2sdk1.4.1_03"lib"tools.jar;少了这个.若你当前的目录却不是 C:"j2sdk1.4.1_03"lib , 就會发生NoClassDefFoundError正確的設定SET CLASSPATH=.;C:"j2sdk1.4.1_03"lib;C:"j2sdk1.4.1_03"lib"tools.jar;表示當前的目錄 , C:"j2sdk1.4.1_03"lib" , 以及 tools.jar 內的class都可以載入。

泪,一种痛苦的雨滴,不知从什么时候开始已在我的世界下个不停。

android导入第三方包所遇到的NoClassDefFoundError错误

相关文章:

你感兴趣的文章:

标签云: