編譯問題
在(zài)編譯打Android 文件時(shí),您可能遇到(dào)無網絡連接、編譯失敗等問題。本文将針對這(zhè)些問題向您介紹排錯步驟與解決方法。
無網絡連接
在(zài)編譯文件時(shí),如果沒有網絡,很有可能造成編譯失敗。通過以(yǐ)下步驟,确認編譯環境的(de)網絡已連接:
确認已連接到(dào)互聯網。
确認未連接網絡代理,包括浏覽器代理設置、第三方網絡代理軟件等。
确認未設置IDE代理。
在(zài) gradle.properties 文件中,确認未設置 Gradle 代理,即未設置 systemProp.http.proxyHost 和(hé / huò) systemProp.http.proxyPort 屬性。如果有設置,删除相關屬性即可。
編譯失敗
如果程序編譯失敗,可通過以(yǐ)下步驟進行排錯與解決:
根據上(shàng)述步驟,确認編譯環境網絡已正常連接。
檢查 Gradle 執行記錄,确認新增的(de)依賴有效。
檢查依賴的(de) GAV(group, artifact, version)參數設置正确
執行以(yǐ)下命令刷新gradle緩存:
gradle clean --refresh-dependencies
如果 Maven 倉庫有對應依賴,删除個(gè)人(rén)目錄下 Gradle 緩存,然後重新編譯。
說(shuō)明:Gradle 緩存的(de)删除方法:
在(zài) MacOS、Linux、Unix等系統中,運行以(yǐ)下命令
cd ~ cd .gradle cd caches rm -rf modules-2
在(zài) Windows 系統中,默認情況下,路徑定位到(dào) C:\Users{用戶名}.gradle\caches,删除 modules-2 文件夾。
緩存問題
Gradle緩存問題
由于(yú) Gradle 在(zài)下載依賴的(de)同時(shí)自動将其緩存了(le/liǎo)一(yī / yì /yí)份在(zài)本地(dì / de),所以(yǐ)等第二次開啓一(yī / yì /yí)個(gè)項目并依賴同一(yī / yì /yí)個(gè)庫的(de)同一(yī / yì /yí)個(gè)版本的(de)時(shí)候,Gradle 實際上(shàng)隻是(shì)拿了(le/liǎo)本地(dì / de)的(de)緩存,有時(shí)會因爲(wéi / wèi)本地(dì / de)緩存導緻項目構建失敗,則可以(yǐ)嘗試清理Gradle本地(dì / de)緩存。
Gradle緩存位置
- 在(zài)Windows上(shàng):
%USER_HOME%\.gradle/caches/
- 在(zài)Mac / Unix上(shàng):
$HOME/.gradle/caches/
Gradle緩存清理
您可以(yǐ)浏覽到(dào)這(zhè)些目錄并手動删除或運行
rm -rf $HOME/.gradle/caches/
項目構建緩存問題
Android項目在(zài)構建過程中會産生緩存,這(zhè)些緩存可能會導緻再次構建項目失敗的(de)問題,則可以(yǐ)嘗試清理構建緩存。
注: Android Studio的(de)File | Invalidate Caches/Restart 不(bù)會清除Android構建緩存,因此您必須單獨清除它。
構建緩存清理
- 在(zài)Windows上(shàng):
gradlew cleanBuildCache
- 在(zài)Mac或Linux上(shàng):
./gradlew cleanBuildCache