使用gradle編譯、打包過程中的問題匯總


第一次嘗試 使用Gradle 進行android環境的編譯、打包,期間問題出現很多,幸好有耐心一一解決,現在將問題記錄下來,分享下

1、問題一 gradle版本不對(與實際項目要求的不一致)

問題描述:構建失敗的原因是gradle的版本不對,要求是2.10的,我本機是3.1的

解決辦法一:手動下載gradle2.10的版本,然后重新構建解決。

解決辦法二:在jenkins的Global Tool Configuration配置中的Gradle設置項中選擇自動安裝Gradle,選擇要安裝的版本即可

構建時,jenkins會自動安裝Gradle

注:打包要求的gradle版本可查看項目文件夾中的\gradle\wrapper\ gradle-wrapper.properties文件中的版本

2、問題二 SDK未安裝或配置路徑與編譯的服務器上SDK路徑不符,導致編譯錯誤

解決方法:未安裝SDK的,需下載Adt Bundle或android studio,然后設置項目中的local.properties文件來指定該sdk路徑

3、問題三 sdk/platforms中沒有對應的文件,導致編譯失敗

解決方法:在Adt Bundle或android studio中打開SDK Manager,進行更新對應文件即可

注:Android SDK Manager國內無法更新的解決方案

1.啟動 Android SDK Manager ,打開主界面,依次選擇「Tools」、「Options...」,彈出『Android SDK Manager - Settings』窗口;

2.在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」輸入框內填入mirrors.neusoft.edu.cn和80,並且選中「Force https://... sources to be fetched using http://...」復選框。設置完成后單擊「Close」按鈕關閉『Android SDK Manager - Settings』,窗口返回到主界面;

3.依次選擇「Packages」、「Reload」

4、問題四:找不到對應的包 Could not find com.android.support:appcompat-v7:23.2.0

提示我們系統沒有找到23.2.0的相應版本的包,也就是說在lib文件夾下面沒有你所請求的配置

解決方法:

通過SDK Manager下載所需的SDK,特別是Extras選項,建議全選然后下載嘗試即可解決問題(我這里是將android6.0(API 23)和extras目錄下的所有內容都下載了后問題解決),見下圖:

5、問題五:找不到簽名配置Execution failed for task ':app:validateRelealseSigning'.

> Keystore file E:/runa/rn.key.jks not found for signing config 'relealse'.

解決方法:

方法一:注釋掉簽名配置的代碼(不推薦)

方法二:使用android studio去創建keystore(推薦)

步驟1:安裝好android studio后打開android studio,新建project后,點擊Build→Generate Signed APK…

步驟2:Create New···(已經創建過keystore選Choose existing···)

步驟3:填寫相關信息

設置keystore路徑、密碼,設置key:別名、密碼、有效期,證書等Key store path:存放路徑

Key

  Alias:別名

  Validity(years):有效期(一般默認25年)

  Certificate:證書

    First and Last Name:姓名

    Organization Unit:組織單位

    Organization:組織

    City or Locality:城市或地區

    State or Province:州或省

    Country Code(XX):國家代碼(XX),中國:86

上面的內容可按照app\build.gradle中內容去填寫,或者隨意寫好后,按照設置的內容去配置build.gradle中的簽名配置。

6、問題六:執行 lint task的時候報錯

這個是因為代碼不符合規范,lint檢查時報錯,因此中斷了整個編譯過程。只要在當前app的app/build.gradle文件內增加如下代碼即可:

android {
    ...
  lintOptions {
      abortOnError false
}
  ...
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM