Gradle 依賴庫下載

Gradle 依賴庫下載

在我們使用Gradle下載相關依賴庫的時候,經常會出現下載過慢或者下載不了的情況。相關原因及嘗試解決辦法如下:


無法找到目標路徑

//原因:無法找到到請求目標的有效認證路徑
Cause: unable to find valid certification path to requested target

可能是AS開啓了離線模式,關閉離線模式後重新嘗試或許可以解決。


無法訪問對應jar包的下載地址

可能是代碼所在倉庫未添加到build.gradle文件中,我們可以做如下修改

allprojects {
        repositories {
            google()
            jcenter()
            mavenCentral()
            mavenLocal()
            //聲明特定的代碼庫
            maven {
                url '**'
            }
        }
    }

Android Studio 項目會將 Google 的 Maven 代碼庫和 JCenter 指定爲項目的頂級 build.gradle 文件中的代碼庫位置,
如果要從 Maven 中央代碼庫獲取某些內容,則添加 mavenCentral();對於本地代碼庫,則使用 mavenLocal(),
我們也可以使用 maven{ url ‘**’ }來聲明特定的代碼庫。


項目存儲位置和本地緩存庫不一致

Android studio 編譯項目是有緩存的,不會每次編譯都去下載三方庫,下載過的三方庫都存儲在本地,位置:C:\{user}\ .gradle\caches\transforms-1\files-1.1
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-r0b4cKOy-1586225212876)(_v_images/20200218113003775_2274.png)]

項目中使用三方庫的配置文件存儲在 .idea/libraries/,我們需要保證項目中的配置文件指向的是正確的地址。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MbrM31kP-1586225212878)(_v_images/20200218113210881_3745.png)]

下載過慢的處理

如果遇到下載過慢,我們可以使用翻牆軟件,或者使用國內鏡像,比如使用開源中國的maven代碼倉庫,
http://maven.aliyun.com/nexus/content/groups/public/ ,注意是把jcenter註釋掉


創建本地代碼倉庫

如果上述方式都無法解決,我們可以嘗試創建本地倉庫,然後從網上下載對應的jar/aar,及其pom文件,放置在本地倉庫中引用。

1、下載 maven 壓縮包

maven 下載地址

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-S75merfc-1586225212878)(_v_images/20200218114221634_17242.png)]

2、配置環境變量

將下載的 maven 壓縮包解壓到本地,然後將路徑配置到環境變量中。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-89zeHtpk-1586225212878)(_v_images/20200218114434405_2449.png)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-exbmBkQ4-1586225212879)(_v_images/20200218114420733_19776.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-z2d7XgYW-1586225212879)(_v_images/20200218114530318_4098.png)]
安裝後,在命令行輸入mvn -v驗證是否配置成功
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-7DyMjjXS-1586225212879)(_v_images/20200218082808339_19683.png)]

3、配置 maven 本地倉庫地址

修改settings.xml文件如下,添加本地倉庫地址
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dbzi6q7V-1586225212880)(_v_images/20200218085026855_23332.png)]

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>D:\localRepository</localRepository>

4、下載對應jar/aar包

如果我們知道地址可以直接下載,或者網上查詢對應的下載地址。不過在我們編譯時Android studio 會告訴我們哪些三方庫下載不了,提示裏面就有對應的下載地址。

我們以 arcgis-android:100.6.0 爲例,AS 提示如下:

Could not resolve all files for configuration ':device:debugCompileClasspath'.
> Could not download arcgis-android.aar (com.esri.arcgisruntime:arcgis-android:100.6.0)
   > Could not get resource 'https://esri.bintray.com/arcgis/com/esri/arcgisruntime/arcgis-android/100.6.0/arcgis-android-100.6.0.aar'.
   //....
  • 我們使用瀏覽器打開https://esri.bintray.com/arcgis/com/esri/arcgisruntime/arcgis-android/100.6.0/
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ImOCNrfQ-1586225212880)(_v_images/20200218115239987_11824.png)]
    可以看到裏面有我們需要的兩個文件

5、本地倉庫中創建對應目錄

我們要在本地代碼倉庫中創建和下載地址相同的相對路徑(目錄)

其實通過下載地址和我們本地配置的arcgis的d代碼庫就可以看出來,AS是怎麼對需要下載的文件進行尋址的。

  • 我們項目中配置的arcgis代碼倉庫
        maven {
            url 'https://esri.bintray.com/arcgis'
        }
  • 下載地址
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-3SCJ8B1a-1586225212880)(_v_images/20200218115624828_21526.png)]
  • 創建對應的目錄
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UFvsdxDM-1586225212880)(_v_images/20200218085522669_11946.png)]

手動一個個目錄的創建有些吃力,我們可以通過命令行創建多級目錄,如下:
1、我們在本地代碼倉庫的目錄欄中輸入cmd打開命令行
2、使用md命令創建多級目錄,格式如圖
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-OvdWwQhC-1586225212881)(_v_images/20200218105604709_17092.png)]

  • 將對應的jar/aar及其pom文件放置在對應目錄中

6、修改項目配置文件

project 層級的 bulid.gradle文件

allprojects {
    repositories {
		//添加本地代碼倉庫
        maven {
            url 'D:/localRepository/'
        }
        mavenLocal()
    }
}

7、重新編譯項目

上述步驟都做完後,我們就可以重新編譯項目了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章