AndroidStudio與Gradle插件和Gradle

一.概況
因爲公司的一個項目用的Gradle插件和Gradle版本比我電腦上用的高,因此工程加載到本地以後就開始各類報錯了。在升級gradle插件和gradle的過程當中遇到了不少的坑。因此爲了之後更好的解決問題,研究一下最熟悉也最陌生的工具AndroidStudio和gradle以及gradle插件。緩存

1.1Android Studio
Android Studio 是谷歌推出一個Android集成開發工具,基於IntelliJ IDEA. 相似 Eclipse ADT,Android Studio 提供了集成的 Android 開發工具用於開發和調試。app

基於Gradle的構建支持
Android 專屬的重構和快速修復
提示工具以捕獲性能、可用性、版本兼容性等問題
支持ProGuard 和應用簽名
基於模板的嚮導來生成經常使用的 Android 應用設計和組件
功能強大的佈局編輯器,可讓你拖拉 UI 控件並進行效果預覽
上面是百度給的百度百科,說白了就是Android開發的新工具Google的親兒子。具體參看AndroidStudio百度百科編輯器

1.2Gradle
Gradle是一個基於Apache Ant和Apache Maven概念的項目自動化構建開源工具。它使用一種基於Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基於XML的各類繁瑣配置。工具

1.3Gradle插件
其實應該是AndroidStudio Gradle Plugin,也就是AndroidStudio用於開發Android項目的gradle插件。佈局

1.4三者的關係
1.Gradle插件會有版本號,每一個版本號又對應有一個或一些 Gradle發行版本(通常是限定一個最低版本),也就是咱們常見的相似gradle-4.1-all.zip這種東西;若是這兩個版本對應不上了,那你的工程構建的時候就會報錯。對應關係參看Gradle插件和Gradle版本對應關係。 
2.Android Studio 3.0 以後自動將插件版本升級到3.0.0,因此咱們也須要對應地把Gradle升級到4.1才行。(後面就是由於這個填坑) 
3.Android Gradle Plugin又會跟 Android SDK BuildTool有關聯(版本有對應的關係),由於它還承接着AndroidStudio裏的編譯相關的功能,這也是咱們要在項目的 local.properties 文件裏寫明Android SDK路徑、在build.gradle 裏註明 buildToolsVersion 的緣由。Android Gradle Plugin 本質上就是 一個AS的插件,它一邊調用 Gradle自己的代碼和批處理工具來構建項目,一邊調用Android SDK的編譯、打包功能,從而讓咱們可以順暢地在AS上進行開發。性能

二.Gradle插件,Gradle,Android SDK BuildTool(buildToolsVersion)
因爲各類坑都填好了,這裏就不從頭至尾的演示填坑的過程了,而是總結各個要注意的點在升級的時候。開發工具

2.1弄清Gradle插件和Gradle的配置方法
前面咱們介紹了Gradle插件和Gradle不是一個東西,下面咱們看看在AndroidStudio中怎麼配置。gradle

2.1.1Gradle插件的配置
在As工程目錄的build.gradle文件中配置(固然也能夠在工程目錄文件夾下去找到文件配置)以下圖: ui

圖中個人插件版本是3.1.3是最新的版本,固然你能夠根據本身的須要配置。(配置好後As會自動去下載)插件

2.1.2Gradle配置
Grale配置的意義在於:在項目建立或者編譯的時候如何查找Gradle的位置和使用什麼版本的Gradle。
配置步驟
1.在gradle-wrapper-propertiies中配置Gradle的版本
2.在本機緩存目錄(用戶主目錄)中存在gradle-4.4-all文件夾或者在As的安裝目錄中存在。(兩個目錄下都不必定存在)
解釋一下「本機緩存目錄」和「As的安裝目錄」
本機緩存目錄(用戶主目錄下),例如個人是:C:\Users\gongxiaoou.gradle\wrapper\dists
As的安裝目錄:C:\Program Files\Android\Android Studio\gradle 
兩個存儲位置實例以下圖:


本機緩存目錄: 


As的安裝目錄: 


2.1.2.1在gradle-wrapper-propertiies中配置Gradle(主要是版本)
以下圖在As的gradle包的gradle-wrapper-propertiies中配置(固然也能夠在工程目錄文件夾下去找到文件配置)以下圖: 


Gradle的版本配置相對較複雜一些。先解釋一下gradle-wrapper-propertiies中各行的含義和做用:

zipStoreBase和zipStorePath組合在一塊兒,是下載的gradle-4.4-all.zip所存放的位置。
zipStorePath是zipStoreBase指定的目錄下的子目錄。
distributionBase和distributionPath組合在一塊兒,是解壓gradle-4.4-all.zip以後的文件的存放位置。
distributionPath是distributionBase指定的目錄下的子目錄。
distributionUrl:Gradle下載地址
Gradle查找過程以下:這裏涉及配置查找規則 
1.Project-level setting中選擇Use default gradle wrapper (recommended),以下圖


則先到本機的緩存目錄中尋找,找到則使用,找不到則到Gradle下載地址去下載。下載完成會將保存一份到本機的緩存目錄。 
2.Project-level setting中選擇Use local gradle distribution,只是將上面的勾選對象變換一下,這裏不粘貼圖了。 
先到As的安裝目錄中查找,而不是去1.中本地緩存目錄中查找。

若是本身有gradle的壓縮包或者去官網下載好gradle的下載地址,而怕在As中下載的過程當中出問題或者下載失敗,那麼咱們能夠採起以下的方法: 
1.Project-level setting中選擇Use default gradle wrapper (recommended),而後將gradle的壓縮包(記住是壓縮包,不解壓)複製到本地緩存目錄下的「亂碼」文件夾中,例如個人是C:\Users\gongxiaoou.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1中,而後clean一下As中工程,此時As會完成壓縮包的解壓,gradle配置成功。 
2.Project-level setting中選擇Use local gradle distribution,將gradle壓縮包解壓,放入As安裝包目錄下,例如個人是:C:\Program Files\Android\Android Studio\gradle中。

2.2Android SDK BuildTool(buildToolsVersion) 在升級完gradle的版本以後,可能會因爲buildToolsVersion太低形成提示錯誤的狀況出現,這時候你就按照提示下載須要的Android SDK BuildTool版本就能夠了。這裏的gradle版本和Android SDK BuildTool的版本對應關係和gradle插件與gradle對應關係類似,都是前者肯定以後,後者只須要更新到符合要求的最低版本便可,固然也能夠是最新的只要匹配就行。  

相關文章
相關標籤/搜索