在我们使用Gradle下载相关依赖库的时候,经常会出现下载过慢或者下载不了的情况。相关原因及尝试解决办法如下:
//原因:无法找到到请求目标的有效认证路径
Cause: unable to find valid certification path to requested target
可能是AS开启了离线模式,关闭离线模式后重新尝试或许可以解决。
可能是代码所在仓库未添加到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
项目中使用三方库的配置文件存储在 .idea/libraries/
,我们需要保证项目中的配置文件指向的是正确的地址。
如果遇到下载过慢,我们可以使用软件,或者使用国内镜像,比如使用开源中国的maven代码仓库,
http://maven.aliyun.com/nexus/content/groups/public/
,注意是把jcenter注释掉
如果上述方式都无法解决,我们可以尝试创建本地仓库,然后从网上下载对应的jar/aar,及其pom文件,放置在本地仓库中引用。
maven 下载地址
将下载的 maven 压缩包解压到本地,然后将路径配置到环境变量中。
D:\localRepository
如果我们知道地址可以直接下载,或者网上查询对应的下载地址。不过在我们编译时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/
我们要在本地代码仓库中创建和下载地址相同的相对路径(目录)
其实通过下载地址和我们本地配置的arcgis的d代码库就可以看出来,AS是怎么对需要下载的文件进行寻址的。
maven {
url 'https://esri.bintray.com/arcgis'
}
手动一个个目录的创建有些吃力,我们可以通过命令行创建多级目录,如下:
1、我们在本地代码仓库的目录栏中输入cmd
打开命令行
2、使用md
命令创建多级目录,格式如图
project 层级的 bulid.gradle文件
allprojects {
repositories {
//添加本地代码仓库
maven {
url 'D:/localRepository/'
}
mavenLocal()
}
}
上述步骤都做完后,我们就可以重新编译项目了。