作為一名光榮的實(shí)習(xí)生我被安排去維護(hù)一個(gè)兩年前的項(xiàng)目。這份工作對(duì)我來說真是太好了,既能學(xué)些東西,也有時(shí)間做些自己的東西。
首先我是按照網(wǎng)上的正確導(dǎo)入法導(dǎo)入項(xiàng)目(具體可以搜下,網(wǎng)上資源很多),嗯,可能是項(xiàng)目時(shí)間太長了。。。。(這是借口)反正我是沒有搞定。這時(shí)候只能去請(qǐng)教前輩了。
然后前輩就交給了我這個(gè)方法,在這里記錄下過程和期間遇到的坑:
過程
- 新建一個(gè)AS項(xiàng)目(初始Hello World就行)
- 導(dǎo)入依賴包Module


- 配置你的
build.gradle
其中我們的項(xiàng)目中用到了android-async-http,而這個(gè)網(wǎng)絡(luò)框架已經(jīng)停止更新,所以要手動(dòng)添加useLibrary 'org.apache.http.legacy'。因?yàn)殇浺艄δ苡玫搅薺ni所以要添加sourceSets.main.jniLibs.srcDirs=['libs']。當(dāng)然還有其他配置這就要看具體項(xiàng)目了。

- 將主項(xiàng)目復(fù)制到app中,先復(fù)制除了layout以外的res資源文件


將除了
activity_main.xml的布局文件加入res中,運(yùn)行項(xiàng)目進(jìn)行檢測(cè)。(因?yàn)轫?xiàng)目是公司的,而我不清楚會(huì)不會(huì)有什么泄露之類的問題,所以后面就不貼圖了)將java文件導(dǎo)入項(xiàng)目并運(yùn)行,這里估計(jì)會(huì)報(bào)錯(cuò),因?yàn)閑clipse項(xiàng)目的jar包如果不用maven管理就會(huì)放到j(luò)ava文件中的這時(shí)候AS中也要將jar包放入java文件中的lib文件下,當(dāng)然你也可以在gradle配置。這時(shí)候的activity文件還是之前的
MainActivity,運(yùn)行項(xiàng)目進(jìn)行檢測(cè)。替換
MainActivity、activity_main和最重要的AndroidMainfast.xml。之后就是運(yùn)行整個(gè)項(xiàng)目了,如果沒有出問題那么恭喜你了。
這個(gè)方法的好處在于每一步都可以運(yùn)行MainActivity檢測(cè)下轉(zhuǎn)過來的項(xiàng)目是否有問題。
坑
其實(shí)這次記錄我主要想要記錄的是轉(zhuǎn)化過程中我踩到的坑:
- 資源文件里面是很坑的,尤其是eclipse沒有AS檢測(cè)的那么嚴(yán)格。
比如說:剛開始運(yùn)行資源文件那里,總是報(bào)圖片錯(cuò)誤。經(jīng)過2個(gè)多小時(shí)的檢測(cè),發(fā)現(xiàn)問題是"有的圖片的命名是XXX..png",這在eclipse中運(yùn)行正確,但在AS中就會(huì)被檢測(cè)出來。有沒有看到這是坑人啊?。?!
當(dāng)然這可能是人為因素,看下一個(gè)問題:因?yàn)轫?xiàng)目中用到了XXX.9.png圖片,而在AS中XXX.9.png文件必須4個(gè)點(diǎn)都描了,否則就會(huì)報(bào)錯(cuò)。好吧,其實(shí)我兩個(gè)多小時(shí)大部分都花費(fèi)在在一百多張圖片中查找錯(cuò)誤的XXX.9.png。。。 - 因?yàn)槭莾赡昵暗捻?xiàng)目,Android中有些方法已經(jīng)過時(shí)了,所以這時(shí)候就要你將之改正過來了。
- 權(quán)限問題,在Android6.0后危險(xiǎn)權(quán)限都要寫成動(dòng)態(tài)權(quán)限。當(dāng)然還有些框架也過時(shí)了,這時(shí)候就看你們是繼續(xù)用這框架還是重構(gòu)代碼(其實(shí)我想重構(gòu)會(huì)更好吧。。。)
- 最后在集合AndroidMainfast.xml中,總是會(huì)遇到各種奇葩問題,例如:
Error:Execution failed for task ':app:processDebugManifest'
這個(gè)問題的原因是我沒有加</application>。。。。