天天看點

使用gradle編譯安卓APK

一、安裝JDK

  在安裝Gradle之前需要先安裝JDK,由于安裝的是Gradle是4.4是以需要安裝JDK1.8。

  之前編譯總是提示如下錯誤就是由于先安裝的jdk1.7然後安裝的1.8造成的,在Gradle啟動檔案中使用了JAVAHOME并且寫成了1.7的目錄,是以無論怎麼配置都是最後腳本中的生效,是以提示版本不對。

java.lang.UnsupportedClassVersionError: com/android/build/gradle/LibraryPlugin : Unsupported major.minor version 52.0      

1、安裝jdk

2、設定環境變量

  設定 JAVA_HOME 

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_171      

  設定path

Path=%PATH%;%JAVA_HOME%\bin      

3、測試配置是否正确

  執行如下指令後提示java1.8即表示成功

java -version      

二、安裝Gradle

1、下載下傳Gradle

  Gradle下載下傳網址:​​http://services.gradle.org/distributions/​​

  由于項目使用4.4編譯是以下載下傳4.4:​​http://services.gradle.org/distributions/gradle-4.4.1-all.zip​​

2、解壓縮

  建立如下目錄:

     lrs : 是目前使用者目錄,需要根據實際修改;

    .gradle : 在資料總管中無法建立請使用dos指令建立 mkdir .gradle

C:\Users\lrs\.gradle\wrapper\dists      

  将下載下傳的zip檔案存放到上邊建立的目錄中,将zip解壓縮,解完後類似如下目錄

C:\Users\lrs\.gradle\wrapper\dists\gradle-4.4-all\gradle-4.4      

3、設定環境變量(目錄需要根據你的實際情況修改)

  設定 GRADLE_HOME

GRADLE_HOME=C:\Users\lrs\.gradle\wrapper\dists\gradle-4.4-all\gradle-4.4      

  設定PATH

Path=%PATH%;%GRADLE_HOME%\bin      

4、測試配置是否正确

  在cmd中執行如下指令如果顯示目前版本為4.4即安裝正确

gradle -v      

三、安裝Android SDK

1、下載下傳安裝包

  官網,需FQ:http://developer.android.com/sdk/index.html 

  不需FQ:http://www.androiddevtools.cn/

  根據你的平台選擇相應下載下傳

使用gradle編譯安卓APK

2、解壓縮、安裝

  将下載下傳的壓縮包解壓縮到此目錄中

C:\Users\lrs\AppData\Local\Android\Sdk\sdk-tools      

3、允許協定

  在cmd中進入此目錄

C:\Users\lrs\AppData\Local\Android\Sdk\sdk-tools\bin      

  運作如下指令,所有都回答Y接受協定

sdkmanager.bat --licenses      

4、設定環境變量

   設定 ANDROID_HOME 

ANDROID_HOME=C:\Users\lrs\AppData\Local\Android\Sdk      

  注意 ANDROID_HOME 指到解壓縮目錄的上一級,也就是這個 sdkmanager.bat 往上的兩級目錄

使用gradle編譯安卓APK

5、安裝 Android SDK Build-Tools 26.0.2

  再次進入如下目錄

C:\Users\lrs\AppData\Local\Android\Sdk\sdk-tools\bin      

  執行如下指令顯示所有sdk,相應的 sdkmanager 可以參見 https://developer.android.com/studio/command-line/sdkmanager

sdkmanager --list      

  根據list的内容安裝 build-tools;26.0.2,如下指令

  在linux上不需要安裝此庫,直接運作步驟7即可

sdkmanager build-tools;26.0.2      

6、下載下傳源代碼

7、clean

  在cmd中進入源碼目錄執行如下指令,安裝過程中會下載下傳一些需要的sdk

gradlew clean      

  由于牆的問題可能運作上面指令很慢卡在哪裡,可以設定國内的一個代理伺服器方法如下:

  建立 gradle.properties 檔案這個目錄在目前使用者下

vi /root/.gradle/gradle.properties      

  插入如下内容儲存即可,重新執行編譯指令。

# http代理
systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

# https代理
systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost      

  注:有的時候代理上也下不來更換代理或者将代理去掉再試一次。

8、編譯

  執行類似如下指令編譯,需要根據你的工程改app的内容

  編譯過程中gradlew會根據需要下載下傳需要的sdk,由于網絡問題可以會提示連接配接逾時錯誤,多試幾次即可,或者根據步驟9配置一個代理

gradlew :app:assembleDebug # 編譯 debug 包,目前用的是多管道編譯是以沒有使用參數的話會編譯所有管道的debug包
gradlew :app:assembleRelease # 編譯 release 包,目前用的是多管道編譯是以沒有使用參數的話會編譯所有管道的release包

gradlew :app:assembleBaiduDebug # debug包,指定編譯百度管道的debug包
gradlew :app:assembleYingyongbaoDebug # debug包,指定編譯應用寶管道的debug包
gradlew :app:assembleBaiduRelease # # release包,指定編譯百度管道的release包
gradlew :app:assembleDebugRelease # release包,指定編譯應用寶管道的release包      

  多管道配置在build.gradle檔案中如下:

flavorDimensions "default"
    productFlavors {
        kuan { dimension "default" }
        xiaomi { dimension "default" }
        qh360 { dimension "default" }
        baidu { dimension "default" }
        wandoujia { dimension "default" }
        yingyongbao { dimension "default" }
    }      

9、設定使用代理下載下傳sdk

  執行如下指令設定代理伺服器位址,其它參數也可參見 https://developer.android.com/studio/command-line/sdkmanager

sdkmanager.bat --proxy={ubuntu.buct.edu.cn | 80}      

  代理伺服器見下表

1、北京化工大學鏡像伺服器位址:
IPv4: ubuntu.buct.edu.cn/ 端口:80
IPv4: ubuntu.buct.cn/ 端口:80
IPv6: ubuntu.buct6.edu.cn/ 端口:80

2、大連東軟資訊學院鏡像伺服器位址:
mirrors.neusoft.edu.cn 端口:80

3、鄭州大學開源鏡像站:
mirrors.zzu.edu.cn 端口:80