Android studio(AS)項目更換gradle版本

本文只介紹操作,不介紹原理,如需瞭解原理,請詳細瞭解Gradle、Android Gradle Plugin以及AS項目中與Gradle有關的文件和各文件的作用。
在開發過程中經常會使用AS導入開源的項目,但是開源項目使用的Gradle與Android Gradle Plugin版本和自己的AS所使用的默認版本經常不一樣(如AS能支持開源項目的版本,最好使AS支持項目版本,否則可能因爲版本不一致導致項目無法正常運行),所以需要進行更換Gradle和Android Gradle Plugin版本,下面介紹實測好用的更換Gradle和Android Gradle Plugin版本的方法,根據開源項目是否能導入或打開成功,分爲兩種處理辦法:

1、正常打開或導入項目

如果開源項目在不改變Gradle和Android Gradle Plugin版本的情況下可以正常打開或導入,可以在AS軟件界面操作進行更改Gradle和Android Gradle Plugin版本,具體如下:

1.1 修改Gradle版本

1. 第一種方法(AS軟件操作修改):
File->Setting->Build,Execution,Deployment->Gradle->Use local Gradle distribution->選擇本地已下載並解壓的Gradle版本路徑。
在這裏插入圖片描述
注意:
1、Gradle默認路徑:C:\Users\Administrator.gradle\wrapper\dists。
2、如默認路徑中沒有自己需要的Gradle版本,去官網下載解壓至默認文件夾即可。
3、在選擇本地文件夾的時候按上圖選擇至內層文件夾,否則會提示文件夾不正確。
4、修改後需重啓AS方可生效。

2. 第二種方法(修改配置文件):
修改項目文件夾下的gradle/wrapper/gradle-wrapper.properties文件中的Gradle版本,修改位置如下圖:
在這裏插入圖片描述

1.2修改Android Gradle Plugin版本

1. 第一種方法(AS軟件操作修改):
File ->Project Structure->Project->Android Gradle Plugin Version,修改Android Gradle Plugin版本,如下圖:
在這裏插入圖片描述
4. 第二種方法(修改配置文件):
修改項目文件夾下的build.gradle文件中的Android Gradle Plugin Version,修改位置如下圖:
在這裏插入圖片描述

2、AS無法正常打開開源項目

AS無法正常打開開源項目,刪除Gradle和Android Gradle Plugin版本相關文件後,導入項目時手動配置合適的版本,步驟如下:

  • 打開你的項目的文件夾,刪除如下圖紅色圈圈的文件,同時刪除gradle文件夾,如下圖:
    在這裏插入圖片描述
    注意:build.gradle文件是項目最外層的,不是app文件夾下面的。
  • 用AS重新導入該項目,導入的時候出出現下面的提示(詢問您的項目沒有Gradle配置,是否要自動使用最新的Gradle版本,選擇OK使用最新版本Gradle,選擇Cancel手動設置本地Gradle路徑),如圖:

在這裏插入圖片描述
注意:
1、不要,不要,不要點OK!!!點cancel,然後在彈出的選擇本地gradle地址的選項框選擇本地Gradle路徑後點ok即可。
2、手動設置Gradle版本路徑,參照第一種情況的第一種方法(正常打開開源項目->修改Gradle版本的AS軟件操作修改)

  • 成功導入項目,但是會提示導入後會報錯,因爲你的項目的最外層的build.gradle文件裏面的是空的,此時,你就需要打開你平時使用正常項目的build.gradle文件,將裏面的內容全部複製過來,放進去,然後將Android Gradle Plugin版本修改爲手動設置的Gradle版本對應的版本即可。
    注意:Android Gradle Plugin版本與Gradle版本不一樣,Android Gradle Plugin版本是Google定義的,Android Gradle Plugin版本與Gradle版本的對應關係,可以參照https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh_cn
    在這裏插入圖片描述

3、修改Android Gradle Plugin版本與Gradle版本後遇到的問題

  • Gradle DSL method not found 'runProguard()'
    問題:找不到runProguard()函數
    問題解析:runProguard()在項目的各個modle下的build.gradle中的buildTypes標籤中使用,因爲在新版本的gradle中,runProguard這個方法已經廢棄了,並且改爲新的方法了minifyEnabled 。
    解決方案:將項目的各個modle下的build.gradle中的buildTypes標籤中runProguard改爲minifyEnabled 即可。
    在這裏插入圖片描述
    參考鏈接:
    https://zhuanlan.zhihu.com/p/21473540
    http://blog.csdn.net/wb_001/article/details/76473403
    https://blog.csdn.net/junjle/article/details/50479247
    https://blog.csdn.net/e_one/article/details/79061640
    https://blog.csdn.net/llfjfz/article/details/101288993
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章