遷移原因
a)????? Google在技術(shù)上極力推薦使用Android專用工具AndroidStudio開發(fā)砂吞,并且AndroidStudio 更新迭代速度很快狈孔,在穩(wěn)定性鳞疲、便捷性上 已經(jīng)完全超過Eclipse闸准。
?b)????? Google也早在至少兩年前就停止了對Eclipse上插件的更新支持(ADT工具包停留在23.0.6),所以已經(jīng)無法滿足Android新版本的支持户誓,所以遷移項(xiàng)目代碼勢在必行饼灿。
遷移過程
????遇到的困難:
? ??????????由于項(xiàng)目創(chuàng)建于2013年,且項(xiàng)目compileSdkVersion =8 帝美;build tools version=8 (即基于Android2.2版本開發(fā))的碍彭,與現(xiàn)在最新SDK版本? ? ? ????????(SDK28 ,Android9.0)差別較大,且項(xiàng)目中依賴部分三方SDK庇忌,所以在項(xiàng)目遷移過程共舞箍,變動比較多,升級版本號的同時皆疹,還要修改部分????已????經(jīng)????過時不用的代碼疏橄。
????步驟
? ? ? ? ? ?一、 修改原項(xiàng)目工程目錄下的project.properties文件
? ? ? ? ? ? ? ?1略就、 將target=android-19 替換為target=android-26捎迫,因?yàn)間oogle已經(jīng)把19 obsolete,Android studio上已經(jīng)無法使用
? ? ? ? ? ? ? ? 2表牢、將指向的java路徑 等刪除掉窄绒,AS導(dǎo)入項(xiàng)目時不需要那些信息
? ? ????????二、打開AS(使AS處于未打開工程狀態(tài)崔兴,如果已經(jīng)打開了工程:File àclose Project)彰导,選擇“import project(Gradle,Eclipse ADT敲茄,etc)”選項(xiàng)
? ??????????????????選Eclipse項(xiàng)目目錄位谋,然后根據(jù)英文提示解決可能會出現(xiàn)的問題,此時一般都能夠正常的將項(xiàng)目導(dǎo)入的AS中了堰燎。
? ? ? ????????? 三倔幼、根據(jù)報錯提示,會發(fā)現(xiàn)AS中有很多類文件無法找到
? ? ? ? ? ? ? ? ? ? 1爽待、查看libs目錄下的jar包是否已經(jīng)被add as library ,如果沒有則add as library翩腐。
? ? ? ? ? ? ? ? ? ? 2鸟款、還很有可能eclipse項(xiàng)目以project library的形式依賴了 第三方的SDK,查看SVN庫中的確發(fā)現(xiàn)有OneSDK 以及openCVLibrary249等三方SDK茂卦,使用AS 以module形式進(jìn)行依賴:Fileànewàimport modle何什,分別導(dǎo)入這兩個SDK,并在app的build.gradle中進(jìn)行依賴等龙,操作
? ? ? ? ? ? ? ? 四处渣、導(dǎo)入中AS并不能正常編譯項(xiàng)目,需要進(jìn)行一系列的修改
? ?????????????????????1.? ? ?AS 3.0之后版本build.gradle 中三方依賴均使用implementation 或api形式進(jìn)行依賴蛛砰,所以修改compile為implementation或? ? ? ?api罐栈。
? ? ? ? ? ? ? ? ? ? ? ? 2、升級compileSdkVersion 泥畅、buildToolsVersion 荠诬、minSdkVersion 、targetSdkVersion等版本為 最新版本28,修改minSdkVersion為14 .(android 3.+)柑贞,后續(xù)如開發(fā)過程中需要更高版本再進(jìn)行升級(因?yàn)楝F(xiàn)有所有Android設(shè)備中使用Android4.4及以上占比95.3%方椎;使用Android5.0-api21以上已經(jīng)占有85%的設(shè)備,且根據(jù)我們面向的用戶群體低版本的設(shè)備用戶會更少)? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? 3钧嘶、升級部分依賴包版本
? ? ? ? ? ? ? ?4棠众、導(dǎo)入后難免會有 重報jar包,根據(jù)報錯情況有决,刪除三方庫與項(xiàng)目中重復(fù)的jar包
? ? ? ? ? ? ? ?5闸拿、修改過時的方法eg:notification的創(chuàng)建,使用Builder形式創(chuàng)建
? ? ? ? ? ? ? ? 6疮薇、其余一些問題胸墙,根據(jù)報錯提示,可自行修改