1. 程式人生 > >用gradle打包android_apk時遇到的一些問題

用gradle打包android_apk時遇到的一些問題

用gradle打包android apk時遇到的一些問題

1.開啟終端進入到專案的根目錄下,執行./gradlew -v 這時會顯示gradle的版本資訊,如果是第一次執行這個命令時會自動下載gradle,但需要翻牆.這個過程是很慢的,也容易出現一些問題,為了避免出現這各種問題也為了能快一些完成,可以用另一個辦法,就是把下載的地址複製到瀏覽器中,在瀏覽器中下載,下載好了之後再把檔案放到/User/使用者名稱/.gradle/wrapper/dists(mac的地址)這個檔案中,一定要解壓之後的檔案.這個時候再執行./gradlew -v命令時就不會下載了,直接顯示gradle的版本資訊.在網速不是很好的情況下,這種方法可以快很多.

在這個過程中有時候還會出現gradlew:Perssion Denied 這樣的錯誤提示,解決辦法是:執行chmod +x gradlew 這樣就可以解決了.

如果在網上下載的demo的gradle版本跟自己的不一樣,在執行這個命令時又會下載相應的版本,不想下載的話,就開啟gradlewrapper.properties檔案把裡面的gradle版本改成自己已有的,不知道的話開啟一個用自己的studio編譯的檔案開啟相應的檔案就可以看到,這樣就不會下載了.

2.在執行./gradlew clean 的時候,可能會出現getting error when trying to run new project in Android Studio 2.2.1這樣的錯誤提示, 這是因為jdk的版本問題

,我之前用的是1.7的,升級到1.8就好了.

還可能出現SDK location not found .Define loaction with sdk .dir in the local,properties file or with an ANDROID_HOME environment variable.這樣的錯誤提示,這是因為找不到sdk的路徑. 執行export ANDROID_HOME=/SDK地址/(可以在sdkmanager中檢視)就可以解決了.

4.執行./gradlew build 的時候會出現gradle build fails on lint task 這樣的錯誤提示,我不懂lint是指的什麼,所心查了一下lint,在維基百科中是這樣解釋lint的:

在電腦科學中,lint是一種工具程式的名稱,它用來標記原始碼中,某些可疑的、不具結構性(可能造成bug)的段落。它是一種靜態程式分析工具,最早適用於C語言,在UNIX平臺上開發出來。後來它成為通用術語,可用於描述在任何一種電腦程式語言中,用來標記原始碼中有疑義段落的工具。

解決辦法是:在app中的build.gradle檔案中在這裡新增lintOptions
這裡有詳細介紹

android {    
 // This is important, it will run lint   
 //checks but won't abort build   
    lintOptions {      
     abortOnError false   
     }
 }

總結:這是第一次使用gradle編譯打包android apk,在這個過程中遇到很多問題,找了很多資料,很感謝前輩們的分享與總結,雖然在找資料的過程中很心煩,但還是堅持下來,把遇到的每一個問題都找到解決的辦法,對自己來說也是一次很大的提升,至少對gradle有了更深的瞭解,加油!!!