簡書 編程之樂
轉(zhuǎn)載請注明原創(chuàng)出處敲董!
gradle分為兩種紫皇,一種是構(gòu)建工具,一種是Android Studio的插件腋寨。
我們經(jīng)炒掀蹋看到的這種
如:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
這里面的是gradle的插件,是和Android相關(guān)平臺相關(guān)的萄窜,不算是gradle的一部分铃剔。理解為maven倉庫的某個類庫。一般是在jcenter更新:https://jcenter.bintray.com/com/android/tools/build/gradle/
總結(jié):
所以一般我們用2種方式編譯gradle
- 使用path配置的(很少用查刻,配置麻煩)
- 沒有使用path配置的照樣可以運(yùn)行键兜,window下一般使用gradlew.bat運(yùn)行g(shù)radle的,其實(shí)我們潛意識下很多項(xiàng)目都是使用此種穗泵,也就是bat(wrapper形式)
我們發(fā)現(xiàn)使用過的gradle版本(wrapper形式的)普气,都默認(rèn)下載到用戶目錄了,如果其他項(xiàng)目設(shè)置 下載過的gradle版本佃延,那就不用再訪問網(wǎng)絡(luò)了棋电。
總之檢查開源項(xiàng)目的 gradle 版本,gradle的插件版本苇侵,buildTools 版本以及 compile sdk 版本 就好辦了;
總結(jié)
- 推薦使用wrapper方式
- 修改gradle插件版本
- 修改gradle-wrapper.properties的值
- cd到gradle.bat所在目錄企锌,運(yùn)行.
linux
./gradlew clean
./gradlew assembleDebug
windows
gradlew.bat clean
gradlew.bat assembleDebug
最后注意點(diǎn)
個別開源項(xiàng)目沒有把local.properties 推送到GitHub上去榆浓,所以會報(bào)找不到SDK的錯誤,這時候只需 建一個 local.properties文件撕攒,內(nèi)容為
ndk.dir=E\:\\Android\\sdk\\ndk-bundle
sdk.dir=E\:\\Android\\sdk
即可陡鹃。
為什么推薦用wrapper而不是 path(path或者AS設(shè)置的gradle安裝路徑)
早些時候我一般設(shè)置的都是第二種方式(等價于path環(huán)境變量),而且當(dāng)時很多博客還錯誤的認(rèn)為
這種是最佳抖坪,且勾選offline work可以加速AS構(gòu)建萍鲸。
但你發(fā)現(xiàn)上面第一種方式 AS 默認(rèn)勾選了 (recommend推薦)
再看兩張截圖
我們發(fā)現(xiàn)現(xiàn)在構(gòu)建gradle只需指定版本號即可,無需跟以前似得指定gradle的安裝位置擦俐,這里的設(shè)置就是改變 前面我們提到的幾個配置文件的值脊阴。 所以wrapper方式是最值得推薦的,它就像一個打包的exe一樣蚯瞧,用戶不需要設(shè)置任何環(huán)境變量嘿期,沒有環(huán)境變量照樣運(yùn)行g(shù)radle。
完整案例
- 下載某個開源項(xiàng)目
- 修改我的gradle-wrapper.properties文件埋合,我本地已存在3.3版本备徐,
在C:\Users\Administrator.gradle\wrapper\dists\目錄中多個gradle可選。
我這里常用3.3甚颂,所以修改為
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
- gradle-3.3-all對應(yīng)的插件版本是2.3.3蜜猾,所以這里修改為如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
}
}
- 我的SDK Manager下載支持的是Android6.0秀菱,所以這里修改為:
compileSdkVersion 26
buildToolsVersion "26.0.0"
- 修改Android6.0即26對應(yīng)的support包
- 添加local.properties
ndk.dir=E\:\\Android\\sdk\\ndk-bundle
sdk.dir=E\:\\Android\\sdk
- cd到gradle.bat所在目錄
linux
./gradlew clean
./gradlew assembleDebug
windows
gradlew.bat clean
gradlew.bat assembleDebug
甩 Android Studio十條街的速度構(gòu)建apk。