編譯問題

在(zài)編譯打Android 文件時(shí),您可能遇到(dào)無網絡連接、編譯失敗等問題。本文将針對這(zhè)些問題向您介紹排錯步驟與解決方法。

無網絡連接

在(zài)編譯文件時(shí),如果沒有網絡,很有可能造成編譯失敗。通過以(yǐ)下步驟,确認編譯環境的(de)網絡已連接:

  1. 确認已連接到(dào)互聯網。

  2. 确認未連接網絡代理,包括浏覽器代理設置、第三方網絡代理軟件等。

  3. 确認未設置IDE代理。

  4. 在(zài) gradle.properties 文件中,确認未設置 Gradle 代理,即未設置 systemProp.http.proxyHost 和(hé / huò) systemProp.http.proxyPort 屬性。如果有設置,删除相關屬性即可。

編譯失敗

如果程序編譯失敗,可通過以(yǐ)下步驟進行排錯與解決:

  1. 根據上(shàng)述步驟,确認編譯環境網絡已正常連接。

  2. 檢查 Gradle 執行記錄,确認新增的(de)依賴有效。

  3. 檢查依賴的(de) GAV(group, artifact, version)參數設置正确

  4. 執行以(yǐ)下命令刷新gradle緩存:

    gradle clean --refresh-dependencies
    
  5. 如果 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
Copyright © 屯昌單支科技有限公司 2019 all right reserved,powered by Gitbook聯系方式: wanglihang@mskj.com
修訂時(shí)間: 2019-08-02 16:19:32

results matching ""

    No results matching ""