Android studio build项目下载失败:
Caused by:
org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException:
Could not resolve all artifacts for configuration ':classpath'.
Caused by: org.gradle.internal.resolve.ArtifactResolveException:
Could not download kotlin-gradle-plugin.jar (org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31)
Caused by: org.gradle.api.resources.ResourceException:
Could not get resource 'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.31/kotlin-gradle-plugin-1.3.31.jar'.
Caused by: org.gradle.internal.resource.transport.http.HttpRequestException:
Could not GET 'https://......
javax.net.ssl.SSLHandshakeException:
Remote host closed connection during handshake
方式一:
// google() //https://dl.google.com/dl/android/maven2/
// jcenter() //https://jcenter.bintray.com/
//不使用https,改为
maven { url 'http://maven.google.com' }
maven { url "http://jcenter.bintray.com/" }
方式二:
关掉Android studio的 use secure connection
方式三:
关闭电脑防火墙
参考:
利用jitpack.io发布Android、Java项目,通过gradle、maven方式引用
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.0.0</version>
</dependency>
//格式:groupid:projectid:version
// https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp
compile group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.0.0'
常用的依赖库
repositories {
google()
maven { url "https://dl.google.com/dl/android/maven2/" }
//
maven { url 'https://maven.google.com' }
//JCenter仓库
jcenter()
maven { url "https://jcenter.bintray.com/" }
//mvenCenter仓库
mavenCentral()
maven { url "https://repo.maven.apache.org/maven2/" }
//
maven { url "https://repo1.maven.org/maven2/" }
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
// jitpack仓库
maven { url "https://jitpack.io" }
mavenLocal()
}
// google()
// jcenter()
//不使用https
maven { url 'http://maven.google.com' }
maven { url "http://jcenter.bintray.com/" }
JCenter、MavenCenter、JitPack
这3个名词即具体的Maven仓库的地址,他们【都是Maven仓库】,但是属于不同的服务源。
总的来说,只有两个标准的Android library文件服务器:Jcenter 和 Maven Central,
现在JitPack也流行了起来。(比较方便)
起初,Android Studio 选择Maven Central作为默认仓库。如果你使用老版本的Android Studio创建一个新项目,mavenCentral()会自动的定义在build.gradle中。
但是Maven Central的最大问题是对开发者不够友好。上传library异常困难。上传上去的开发者都是某种程度的极客。
同时还因为诸如安全方面的其他原因,Android Studio团队决定把默认的仓库替换成jcenter。正如你看到的,一旦使用最新版本的Android Studio创建一个项目,
jcenter()自动被定义,而不是mavenCentral()
我们发现第三个jitpack的写法和前2个不一样,写法是maven {} 里面加入地址,其实这个才是maven仓库标准引用方法,jcenter和mavenCenter由于是标准的Android仓库,相当于定义了一个别名。
Bintray是什么
Bintray其实只是一个网站,他们负责维护JCenter这个库,就是说JCenter库是托管在Bintray网站上的。
但是Bintray不只只有JCenter库,每个人都可以在上面创建自己的账号,生成自己的maven仓库,比如我的账号tangsiyuan下面创建了一个名叫"maven"的maven仓库。那我的maven仓库地址就是
https://dl.bintray.com/tangsiyuan/maven
当然也可以在build中引入
maven { url 'https://dl.bintray.com/tangsiyuan/maven' }
而JCenter仓库只是Bintray官方账户创建的一个maven仓库,地址是 https://jcenter.bintray.com
其实个人的仓库和JCenter是平级的,只不过JCenter被Android Studio设为了标准仓库。
JitPack
目前比较常用的Android Library仓库主要有Jcenter、Maven Central和JitPack。一开始Android Studio选择Maven Central作为默认仓库,但是后来因为上传开源库复杂度与安全方面等原因,Android Studio把默认的仓库替换成jcenter,即当你新建一个项目的时候,你会发现Android Studio已经自动在项目的build.gradle中帮你配制好了jcenter。
但是前2种发布过程是比较麻烦的,需要验证、审核、踩一系列的坑等等。而JitPack发布过程那就简单多了,几分钟搞定,所以选择了JitPack。
- 新建项目和依赖
注意:由于JitPack最终生成的依赖名称(如下)是以项目名称命名的,
所以最好一开始创建项目的时候项目名称就要命名好,也可以后续在Github上修改项目的名称。
很多博客说需要步骤2和3,但是经过自己验证不加上也是可以的。
- 在项目的build.gradle中添加android-maven-gradle-plugin依赖,如下:
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'//ADD
}
}
- 在library的build.gradle中启用android-maven-gradle-plugin和配置你的group,如下:
apply plugin: 'java-library'
apply plugin: 'com.github.dcendents.android-maven'//ADD
- 将项目上传到Github
配置忽略文件, 上传项目
-
打开项目主页,创建releases
-
填写发布信息进行Releases或Tags代码发布
7 将项目发布到JitPack
1.进入JitPack官网 https://jitpack.io/ ,找到自己的项目
2.点击获取后,就会列出library的信息,并告诉你怎么使用