第一次嘗試 使用Gradle 進行android環境的編譯、打包,期間問題出現不少,幸虧有耐心一一解決,如今將問題記錄下來,分享下android
一、問題一 gradle版本不對(與實際項目要求的不一致)服務器
問題描述:構建失敗的緣由是gradle的版本不對,要求是2.10的,我本機是3.1的app
解決辦法一:手動下載gradle2.10的版本,而後從新構建解決。fetch
解決辦法二:在jenkins的Global Tool Configuration配置中的Gradle設置項中選擇自動安裝Gradle,選擇要安裝的版本便可gradle
構建時,jenkins會自動安裝Gradleui
注:打包要求的gradle版本可查看項目文件夾中的\gradle\wrapper\ gradle-wrapper.properties文件中的版本spa
二、問題二 SDK未安裝或配置路徑與編譯的服務器上SDK路徑不符,致使編譯錯誤3d
解決方法:未安裝SDK的,需下載Adt Bundle或android studio,而後設置項目中的local.properties文件來指定該sdk路徑code
三、問題三 sdk/platforms中沒有對應的文件,致使編譯失敗orm
解決方法:在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」
四、問題四:找不到對應的包 Could not find com.android.support:appcompat-v7:23.2.0
提示咱們系統沒有找到23.2.0的相應版本的包,也就是說在lib文件夾下面沒有你所請求的配置
解決方法:
經過SDK Manager下載所需的SDK,特別是Extras選項,建議全選而後下載嘗試便可解決問題(我這裏是將android6.0(API 23)和extras目錄下的全部內容都下載了後問題解決),見下圖:
五、問題五:找不到簽名配置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中的簽名配置。
六、問題六:執行 lint task的時候報錯
這個是由於代碼不符合規範,lint檢查時報錯,所以中斷了整個編譯過程。只要在當前app的app/build.gradle文件內增長以下代碼便可:
android { ... lintOptions { abortOnError false } ... }