作為一名光榮的實習(xí)生我被安排去維護(hù)一個兩年前的項目豺瘤。這份工作對我來說真是太好了镇饺,既能學(xué)些東西,也有時間做些自己的東西愚屁。
首先我是按照網(wǎng)上的正確導(dǎo)入法導(dǎo)入項目(具體可以搜下,網(wǎng)上資源很多)痕檬,嗯霎槐,可能是項目時間太長了。梦谜。丘跌。。(這是借口)反正我是沒有搞定唁桩。這時候只能去請教前輩了碍岔。
然后前輩就交給了我這個方法,在這里記錄下過程和期間遇到的坑:
過程
- 新建一個AS項目(初始Hello World就行)
- 導(dǎo)入依賴包Module
- 配置你的
build.gradle
其中我們的項目中用到了android-async-http
朵夏,而這個網(wǎng)絡(luò)框架已經(jīng)停止更新,所以要手動添加useLibrary 'org.apache.http.legacy'
榆纽。因為錄音功能用到了jni所以要添加sourceSets.main.jniLibs.srcDirs=['libs']
仰猖。當(dāng)然還有其他配置這就要看具體項目了。
- 將主項目復(fù)制到app中奈籽,先復(fù)制除了layout以外的res資源文件
將除了
activity_main.xml
的布局文件加入res中饥侵,運(yùn)行項目進(jìn)行檢測。(因為項目是公司的衣屏,而我不清楚會不會有什么泄露之類的問題躏升,所以后面就不貼圖了)將java文件導(dǎo)入項目并運(yùn)行,這里估計會報錯狼忱,因為eclipse項目的jar包如果不用maven管理就會放到j(luò)ava文件中的這時候AS中也要將jar包放入java文件中的lib文件下膨疏,當(dāng)然你也可以在gradle配置。這時候的activity文件還是之前的
MainActivity
钻弄,運(yùn)行項目進(jìn)行檢測佃却。替換
MainActivity
、activity_main
和最重要的AndroidMainfast.xml
窘俺。之后就是運(yùn)行整個項目了饲帅,如果沒有出問題那么恭喜你了。
這個方法的好處在于每一步都可以運(yùn)行MainActivity檢測下轉(zhuǎn)過來的項目是否有問題。
坑
其實這次記錄我主要想要記錄的是轉(zhuǎn)化過程中我踩到的坑:
- 資源文件里面是很坑的灶泵,尤其是eclipse沒有AS檢測的那么嚴(yán)格育八。
比如說:剛開始運(yùn)行資源文件那里,總是報圖片錯誤赦邻。經(jīng)過2個多小時的檢測髓棋,發(fā)現(xiàn)問題是"有的圖片的命名是XXX..png
",這在eclipse中運(yùn)行正確深纲,但在AS中就會被檢測出來仲锄。有沒有看到這是坑人啊E热怠H搴啊!
當(dāng)然這可能是人為因素币呵,看下一個問題:因為項目中用到了XXX.9.png圖片怀愧,而在AS中XXX.9.png文件必須4個點都描了,否則就會報錯余赢。好吧芯义,其實我兩個多小時大部分都花費(fèi)在在一百多張圖片中查找錯誤的XXX.9.png。妻柒。扛拨。 - 因為是兩年前的項目,Android中有些方法已經(jīng)過時了举塔,所以這時候就要你將之改正過來了绑警。
- 權(quán)限問題,在Android6.0后危險權(quán)限都要寫成動態(tài)權(quán)限央渣。當(dāng)然還有些框架也過時了计盒,這時候就看你們是繼續(xù)用這框架還是重構(gòu)代碼(其實我想重構(gòu)會更好吧。芽丹。北启。)
- 最后在集合AndroidMainfast.xml中,總是會遇到各種奇葩問題拔第,例如:
Error:Execution failed for task ':app:processDebugManifest'
這個問題的原因是我沒有加</application>
咕村。。蚊俺。培廓。