發(fā)表時(shí)間:2011-03-25 最后修改:2011-03-25
最近幾天學(xué)習(xí)android ,學(xué)習(xí)時(shí)候難免要導(dǎo)入一些示例,目的為了更加了解android各種API用法,順便也可以學(xué)習(xí)下別人代碼的寫法。可是導(dǎo)入android源碼后,基本都有錯(cuò)誤,R.java也不會(huì)自動(dòng)生成,因?yàn)槭堑谝淮螌?dǎo)入工程,工程有錯(cuò)R.java就不會(huì)自動(dòng)生成了,工程有錯(cuò)誤,當(dāng)然模擬器就不能啟動(dòng),也就看不到效果。隨后網(wǎng)上找各種解決方法,網(wǎng)上解決方法主要有這幾種
1、選擇菜單 Project >> Clean ,前提是勾選上 Bulid Automatically(自動(dòng)構(gòu)建部署) , 點(diǎn)Clean后會(huì)重新構(gòu)建項(xiàng)目,因?yàn)橐话闱闆r下,R.java文件在這個(gè)時(shí)候會(huì)重新更新生成一邊,如果工程有錯(cuò),就不會(huì)自動(dòng)生成。
2、選擇工程,右鍵 Android Tools >> Fix Project Properties 這個(gè)操作有時(shí)候可以修正一些錯(cuò)誤,但我的不行。
3、還有的說(shuō)法是重新建一個(gè)空的工程,然后把這里面的代碼,資源文件按照對(duì)應(yīng)的包路徑什么的拷進(jìn)去,然后重新生成一邊,這種方法,也想當(dāng)于是第一種方法,都是重新構(gòu)建部暑,性質(zhì)一樣的。
以上幾種方法都試了,R.java依舊沒(méi)出現(xiàn),整個(gè)工程還是一大堆錯(cuò)誤。隨便點(diǎn)了一個(gè)有錯(cuò)誤的布局XML文件,看到這樣一個(gè)錯(cuò)誤代碼android:layout_height="match_parent" , 之前我都用1.5/1.6/2.1 版本的SDK layout_height里面沒(méi)有看到match_parent這個(gè)屬性,然后問(wèn)群一個(gè)兄弟說(shuō)這個(gè)屬性是2.X版本的,想了下,是不是因?yàn)楣こ痰腟DK版本和eclipse默認(rèn)的SDK版本問(wèn)題呢,于是選擇工程,右鍵 Properties >> Android 然后看到右邊的一塊 Target Name, 我的是選中 Android 1.5,然后換了一個(gè) 2.1 的 ,點(diǎn)擊Appply ,工程自動(dòng)構(gòu)建,看到錯(cuò)誤少了一些,換到2.2,重新構(gòu)建,錯(cuò)誤沒(méi)了,久未解決的問(wèn)題解決了,R.java也出來(lái)了,一個(gè)字高興啊,啟動(dòng)模擬器一切正常。
總結(jié)下當(dāng)導(dǎo)入其它源碼時(shí)候,首先要保證源碼的SDK版本和你eclipse默認(rèn)版本是否一致。
查看源碼版本辦法:打開default.properties 文件,看target=android-7 這后面這個(gè)數(shù)是多少。
版本對(duì)應(yīng)關(guān)系:target=android-3 <---> android 1.5 ,target=android-4 <---> android 1.6 ,
target=android-7 <---> android 2.1 ,target=android-8 <---> android 2.2 其它的自己測(cè)試下。