1. 背景: html
前些时候,在进行Android程序开发过程当中帮助同窗修改xml代码时候,偶尔会出现R类文件离奇失踪事件,当时通过一些恢复操做无果后,只好重建一个工程。因为R类文件在Android工程中是一个极其特殊的存在,因此我就此进行了一些小测试。 android
2. 失踪者资料: 网络
R类文件是由ADT自动生成的一个文件,居所是gen目录下,其会为每个资源定义惟一的ID,而整个工程就是经过ID的识别来引用相关资源,故R类文件可谓是咱们工做的资源中心。 app
3. 案情分析: eclipse
因为R类文件的特殊性,故其的做用是举足轻重的,但这时它居然失踪的!!一个诺大的工厂就由于缺少资源的“进口”,没法进行任何“生产”了。到底是谁把咱们的R类文件给绑票了呢?现进行以下可能性推测: ide
a) 开发者的不当心把gen目录给删除了; 工具
b) 开发工具的一个bug。 布局
4. 案情推理: 开发工具
a) 测试环境:Android-1.5 测试
i. 是开发者的粗枝大叶么?
ii. 是一个bug?
5. 案件结论:
a) 修正全部报错的地方,便可。
b) 既然多是开发工具的中转义字符引发的一个bug,那么在使用转义字符的时候就应当注意一下了,下面给出经常使用的转义字符
转义字符 | 实际符号 | 名称 |
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
备注:转义字符后面的分号不可省略,更多的转义字符可参考网络资源。
c) 解决方案:
i. 右击工程->Android Tools->Fix Project Properties
ii. 右击工程->Properties->Android->选择正确相应的target而后点击apply。
iii. 上面两方法不奏效时,就能检查下res文件夹里的xml资源文件了:
(1)xml文件名不能包括大写字母。
2、android工程无端报错--conversion to dalvik format failed with error 1
conversion to dalvik format failed with error 1:
法(1):Android2.1问题。建工程建议直接使用2.2以上版本。
法(2):尝试project clean。
法(3):修改SDK版本。
网上问题解决附录:
在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,后来在论坛
(http://www.eoeandroid.com/thread-53880-1-1.html)上找到新方法:
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 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的工程结构就同样了。