1.把gradle路徑設為本地路徑
Jenkins部署在遠程linux服務器上,使用git將代碼下載到服務器路徑下后,無法使用gradle命令
因為默認配置都是gradle同步時 實時從網上下載,進入gradle-wrapper.properties可查看配置:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
遠程服務器網速慢,gradle下載不下來
解決方案:本地下載好gradle-2.14.1-all.zip,copy到遠程服務器上,在gradle-wrapper.properties文件中修改路徑為本地路徑:
#distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip distributionUrl=file\:/jenkins/jenkins_home/workspace/uicase/gradle/wrapper/gradle-2.14.1-all.zip
2.執行./gradlew 仍錯誤,報錯
“Error:Gradle distribution 'file\:/jenkins/jenkins_home/workspace/uicase/gradle/wrapper/gradle-2.14.1-all.zip' contains too many directories. Expected to find exactly 1 directory.”
找了很多資料,發現問題在:
gradle-2.14.1-all.zip 為我本地mac本下載后再拷到服務器上,mac的safari瀏覽器下載完后自動解壓了,因為需要zip包所以我手動再壓縮成zip包,OSX 自動生成許多__MACOSX 文件夾
解決方案:
在服務器上找到zip所在文件夾下,輸入以下命令:
zip -d gradle-2.14.1-all.zip __MACOSX/*,再重新運行./gradlew,問題解決。
感謝:http://blog.csdn.net/daoxiaomianzi/article/details/60589690
3.Terminal執行./gradlew clean成功,但在jenkins腳本中執行./gradlew clean失敗
報錯信息:
* What went wrong: A problem occurred configuring root project 'BloodGlucose'. > SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
解決方案:
解決:在系統管理->系統設置 -> 全局屬性 -- Environment variables里面新增一個全局環境變量,配置ANDROID_HOME即可。
感謝http://blog.csdn.net/hwhua1986/article/details/48155163
4../gradlew clean成功,執行./gradlew assembleDebug 失敗
①報錯信息:
* What went wrong:
Execution failed for task ':uitest:mergeDebugResources'.
> Error: java.lang.RuntimeException: Crunching Cruncher drop_down_list_arrow.png failed, see logs
看到網上有個盆友說,是因為png文件不符合標准,替換即可。於是找出這個文件在哪,逐條刪除。。
[root@LetvWebServer-8CB344 BasicSample]# find . -name drop_down_list_arrow.png
./uitest/build/intermediates/exploded-aar/cn.trinea.android.common/trinea-android-common/4.2.15/res/drawable-hdpi/drop_down_list_arrow.png
./uitest/build/intermediates/exploded-aar/cn.trinea.android.common/trinea-android-common/4.2.15/res/drawable-mdpi/drop_down_list_arrow.png
./uitest/build/intermediates/exploded-aar/cn.trinea.android.common/trinea-android-common/4.2.15/res/drawable-ldpi/drop_down_list_arrow.png
但是重新執行./gradlew assembleDebug仍然報錯,這些圖片文件在build的過程中再次生成,但又阻礙繼續build。。
再次尋覓答案~~
后找到http://blog.csdn.net/q9104422999/article/details/53736027
解決方案:
在build.gradle文件中加入下面兩行(標黃)即可:
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
②解決完上面的問題,繼續運行,仍報錯
報錯信息:
* What went wrong: Execution failed for task ':uitest:processDebugResources'. > com.android.ide.common.process.ProcessException: Failed to execute apt ...... Caused by: org.gradle.process.internal.ExecException: Process 'command '/data/android-sdk/r24.4.1/build-tools/23.0.1/aapt'' finished with non-zero exit value 127
這個問題貌似很多人遇到,但是解決辦法試了都不管用~~~ 最后發現一個靠譜的答案 ~~ 因為確實libz.so.1文件~~
http://stackoverflow.com/questions/31868406/aapt-finished-with-non-zero-exit-value-127
但是這個答主所在服務器為ubuntu,下載包的命令在centos上並不管用,也搜尋不到相關的包。
后再次尋覓~~ 終於尋找到安裝缺失包的方法~~
解決方案:
[root@Sample]# yum whatprovides libz.so.1
......
zlib-1.2.3-29.el6.i686 : The zlib compression and decompression library
Repo : CentOS-os
匹配來自於:
Other : libz.so.1
————————————————————
查找到相關包:zlib-1.2.3-29.el6.i686
[root@Sample]#sudo yum install zlib-1.2.3-29.el6.i686
安裝成功后,重新./gradlew assembleDebug ~ 成功~~