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的工程結構就同樣了。