【学习Android遇到的异常】conversion to dalvik format failed with error 1的解决方法汇总

【学习Android遇到的错误】conversion to dalvik format failed with error 1的解决办法汇总

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

 

1。如果不修改android sdk版本,则使用project clean 命令作用于某工程即可。

(该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级)

 

2。如果修改android sdk版本,则需要以下几个步骤:

 

1)修改SDK

 

选择工程,buildpath --> configure build path ---> library 删除引用的低版本SDK,

然后add ExternalJARs,选择高版本SDK,OK,保存

 

2)修改classpath文件

 

该文件可能存在该项:<classpathentry kind="lib" path ="你所指定的高版本的地址"

把她修改成<classpathentrykind="con"path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" />

 

3) 修改AndroidManifest.xml

 

在AndroidManifest.xml文件中,application标签后添加<uses-sdkandroid:minSdkVersion="3"></uses-sdk>

 

4) 修改default.properties(很重要)

 

该文件最后一行(前面没用#的)target=android-3 该成target=android-8,保存。

再看看你的工程和新建的android2.2的工程结构就一样了。

 

3.在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问题了。折腾了

一番后,很多网友都说用Projectclean可以解决,但对我的情况来说,没有用处。

 

解决方法:

 

修改项目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 -> androidlabel, check a target from the project build target list

 

<!-- 这样有时候还是不能去掉错误,这时候注意,在进入project-> properties -> android后,下面有

一个is library项,把它勾上,再点击确定错误就OK了,我的错误就是这样解决的,一开始按照上面

以及后面的方法都解决不了,最后我看到有一个is library项,把它勾上再确定试一下OK,错误没了 -->

(这个is library是表示是不是库的意思,如果实在没有别的办法的时候再试试,具体根据自己的情况)

 

 

4.还有一种情况:包冲突,请到工程目录下将相同的包删除,重新导入一个,这一点和第一种情况类似,不过这是针对其他包,不是android包

 

解决办法:Java Build Path->Libraries->JARs and class folders on thebuild path

看是否有相同的jar包 有些jar包版本同定 不一定是android的jar包 其他类库的jar包也会造成这样的错误

上次signpost-core-1[1].2.1.1.jar和signpost-core-1.2.1.1.jar冲突了就出现这样的错误所以你看一下是否有相同的jar包


之前比较纠结的就是第四种情况,我从别人那考来了一个andengine游戏引擎的代码,我把他的libs文件夹设置成source folder,后来又把里面的各个jar包add to buildpath,后来就出现了题目的问题,查了很多解决办法,都没有解决,后来仔细观察发现我的问题和第四点比较像,就把其中的jar全部移除了,然后重新加载一次,这下解决了,哈哈,这里把方法汇总贴出来,方便查看。