【MacOS High Sierra】Android Studio 3.0.1 構(gòu)建Android-22版本ApiDemos項(xiàng)目

參考文檔

序號(hào) 名稱 鏈接地址 備注
1 Android Gradle Plugin Release Notes https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle 詳細(xì)描述了Android Gradle Plugin的版本變更,以及每個(gè)版本對(duì)Gradle版本和Build Tools Version的依賴關(guān)系
2 SDK Build Tools Release Notes https://developer.android.com/studio/releases/build-tools.html 記錄了Build Tools 各個(gè)版本信息,包括版本號(hào)等
3 Support v4 library Revision archive https://developer.android.com/topic/libraries/support-library/rev-archive.html 記錄了Support v4包的修改進(jìn)化過程,版本信息等修改升級(jí)檔案
4 Migrate to Android Plugin for Gradle 3.0.0 https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations 詳細(xì)介紹了如何升級(jí)Android Gradle plugin到3.0.0版本,解決遇到的問題,版本沖突等

一、環(huán)境準(zhǔn)備

  1. 操作系統(tǒng) = MacOS High Sierra 10.13.2
  2. JDK 版本 = <font color="red">1.8.0_40</font>
  3. Android Studio = <font color="red">3.0.1</font>
  4. ApiDemos源代碼 = 你的Android SDK目錄下/samples/<font color="red">android-22</font>/legacy/ApiDemos
    (如果沒有,請(qǐng)使用SDKmanager下載)

二、關(guān)鍵概念

1. Android Studio
2. Gradle
3. Gradle Wrapper
4. Gradle distributionUrl
5. Gradle DSL method
6. Android Gradle Plugin
7. buildToolsVersion
8. compileSdkVersion

三、Android Studio 3.0.1中創(chuàng)建新項(xiàng)目(或者轉(zhuǎn)化Eclipse項(xiàng)目)采用的默認(rèn)配置

1. 由于AndroidStudio3.0.1默認(rèn)使用Android Gradle plugin 3.0.0+版本,而Android Gradle 
   plugin 3.0.0+需要依賴于Gradle 4.1+版本,并且要求Build Tools 26.0.2 or higher.
   
2. Gradle plugin 3.0.0+中會(huì)自帶一個(gè)最低可使用版本的Build Tools,只要使用Gradle 
   plugin 3.0.0+版本就不再需要手動(dòng)指定Build Tools(buildToolsVersion)了。

四、Android Studio 3.0.1 導(dǎo)入Android-22中的ApiDemos項(xiàng)目

步驟 類型 示例
1 操作 Android Studio中導(dǎo)入eclipse項(xiàng)目,自動(dòng)生成gradle配置文件。
import eclipse project from android studio
2 操作 選擇我們準(zhǔn)備好的Android-22 ApiDemos源碼目錄。
select apiDemos project
3 操作 設(shè)置Project要導(dǎo)入的目標(biāo)目錄
select project import directory
4 操作 保持默認(rèn)導(dǎo)入設(shè)置不變
keep the import settings default
5 錯(cuò)誤 項(xiàng)目導(dǎo)入之后,編譯項(xiàng)目,開始解決編譯錯(cuò)誤。<font color="red">編譯錯(cuò)誤1:為preference_switch文件增加.xml后綴</font>
first build apiDemos and resolve first error
6 錯(cuò)誤&操作 <font color="red">編譯錯(cuò)誤2:缺少support v4 包,需要導(dǎo)入正確版本的support v4 包,默認(rèn)通過module settings 導(dǎo)入的都是最新的版本,有可能不兼容。需要導(dǎo)入和buildToolsVersion 相匹配的v4 包。</font>
need support v4 package
添加V4包:項(xiàng)目右鍵-->open module settings-->選擇modules中的app-->選擇Dependencies-->點(diǎn)擊左下角 "+"號(hào)-->選擇support v4包-->點(diǎn)擊OK-->OK關(guān)閉module settings界面。導(dǎo)入Support v4包
add support v4 package
7 錯(cuò)誤 編譯錯(cuò)誤2:缺少support v4 包,需要導(dǎo)入正確版本的support v4 包,默認(rèn)通過module settings 導(dǎo)入的都是最新的版本,有可能不兼容。需要導(dǎo)入和buildToolsVersion 相匹配的v4 包。
need support v4 package
8 操作 添加V4包:項(xiàng)目右鍵-->open module settings-->選擇modules中的app-->選擇Dependencies-->點(diǎn)擊左下角 "+"號(hào)-->選擇support v4包-->點(diǎn)擊OK-->OK關(guān)閉module settings界面。
add support v4 package
最新support v4被放置在了google()倉庫中,需要添加google()倉庫支持,點(diǎn)擊圖中錯(cuò)誤<font color="red">Add GoogleMaven repository and sync project</font>之后會(huì)添加google()倉庫到項(xiàng)目中
最新support v4被放置在了google()倉庫中,需要添加google()倉庫支持
8 錯(cuò)誤 點(diǎn)擊上圖中錯(cuò)誤Add GoogleMaven repository and sync project之后會(huì)添加google()倉庫到項(xiàng)目中,再編譯
點(diǎn)擊上圖中錯(cuò)誤Add GoogleMaven repository and sync project之后會(huì)添加google()倉庫到項(xiàng)目中,再編譯
9 操作 修改minSdkVersion為14,再編譯
修改minSdkVersion為14
10 操作 [注釋掉mms相關(guān)代碼,因?yàn)閙ms編譯需要內(nèi)核。注釋掉所有錯(cuò)誤地方
注釋掉mms相關(guān)代碼,因?yàn)閙ms編譯需要內(nèi)核
注釋代碼2,注釋掉所有錯(cuò)誤地方
注釋掉mms相關(guān)代碼,因?yàn)閙ms編譯需要內(nèi)核2
11 錯(cuò)誤&操作 查看android-22和android-23源碼得知:Notification.setLatestEventInfo方法在android-23以上被刪除了,所以需要修改compileSdkVersion=22
Notification.setLatestEventInfo方法在android-23以上被刪除了,所以需要修改compileSdkVersion=22
適合compileSdkVersion=22的BuildToolsVersion列表,從中得知22.0.0和22.0.1適合,我們選擇22.0.1
適合compileSdkVersion=22的BuildToolsVersion列表
適合buildTools 22.0.1 的Support library 版本,我們選擇22.2.1
適合buildTools 22.0.1 的Support library 版本
修改build.gradle文件:<font color="red">compileSdkVersion=22 buildToolsVersion=22.0.1 support v4 版本為 22.2.1</font>
12 錯(cuò)誤 Android Gradle Plugin 版本3.0.1要求buildToolsVersion至少26.0.1,所而這里buildToolsVersion已經(jīng)不能升高,所以只能獎(jiǎng)勵(lì)gradle plugin 版本來匹配buildToolsVersion = 22.0.1
gradle plugin 版本對(duì)于buildToolsVersion=22.0.1來說太高了,必須降低
修改gradle plugin版本
適合buildToolsVersion=22.0.1的gradle plugin版本
修改Gradle版本來匹配gradle plugin版本
修改Gradle版本來適合Gradle plugin 版本
Gradle plugin降級(jí)之后刪除不支持的google()倉庫
Gradle plugin版本降低之后,需要移除google()倉庫,因?yàn)榈桶姹静恢С?/div>
Gradle plugin降級(jí)之后修改implementation為compile
替換implementation為舊版本complie方法
13 錯(cuò)誤&操作 注釋掉錯(cuò)誤行代碼,api 23 才加入的方法,方然也可以繼續(xù)修改編譯環(huán)境來匹配api 23.
注釋掉錯(cuò)誤行代碼,api 23 加入的方法
api 23加入的方法
14 錯(cuò)誤 可能出現(xiàn)的錯(cuò)誤,如果出現(xiàn),按照錯(cuò)誤提示修改成res-auto名稱空間即可。
Gradle項(xiàng)目中自定義View都使用res-auto名稱空間

<font color="red">至此,ApiDemos已經(jīng)可以運(yùn)行成功了。</br>
代碼已經(jīng)上傳至Github:https://github.com/Farubaba/ApiDemos
</font>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容