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、重新编译项目

上述步骤都做完后,我们就可以重新编译项目了。

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