您的位置:首页 > 移动开发 > Android开发

Android Studio发布项目到jCenter

2016-08-26 15:05 330 查看

概述

在Android开发中,如果我们需要引入一个第三方的库,往往最喜欢的做法是在gradle文件中添加一行引用,然后在代码中就可以使用了,今天来带大家实现这个过程,让我们自己写的东西也能很方便的一行代码引入。接下来按步骤给大家讲解一下。

1.首先创建创建一个Android Library,这个就是我们需要上传的

2.进入下面的网址

https://bintray.com/

登录进去以后,我们需要获取一个key,请看下面的步骤



这个key我们在后面的命令行中会使用到,先保存起来

3.配置我们的libarary

在Project的gradle文件里面添加下面的配置

dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
//添加这一行
classpath 'com.novoda:bintray-release:0.3.4'
}


然后在library的gradle文件里面添加

apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加这一行

....

publish {
userOrg = 'smalllee'//bintray.com用户名
groupId = 'com.edj'//jcenter上的路径
artifactId = 'dragview'//项目名称
publishVersion = 'v1.0.0'//版本号
}


这样我们的配置就算完成了。

4.去binary上进行操作



如果是第一次,之前没创建过仓库,需要点击Add New Repository,进入下面的界面



注意,这里的仓库明必须要是maven,否则运行命令的时候会报错,下面的Type我们也选maven。

这里我已经创建好了仓库,所以进入仓库,点击创建新的package



进入创建页面,填写完信息



需要注意的是这里的Name要和我们Project中配置的artifactId 一致,否则会上传失败。

5.运行gradlew命令

gradlew clean build bintrayUpload  -PbintrayUser=SmallLee  -PbintrayKey=3a7b834fb1109091edb5b179b2735acf7c533f57  -PdryRun=false


PbintrayUser是你登录binary这个网站的用户名,我这里使用Github的帐号登录的,所以和Github的用户名保持一直,key就是我们前面获取到的,dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。

然后我们在Studio的命令行运行命令。

6.错误解决

在运行命令的过程中可能遇到各种问题,下面把我碰到的问题全部罗列出来,并给出解决办法

错误信息 1:



大概意思是说产生JavaDoc的时候出错了,经过网上查找,解决办法如下

allprojects {
repositories {
jcenter()
}
//加上这些
tasks.withType(Javadoc) {
options{ encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}


之后又遇到一个错

* What went wrong:
Execution failed for task ':dashview:bintrayUpload'.
> Could not create version 'v1.0.0': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]


错误的大概意思是资源需要验证,经过一番尝试,解决办法如下

publish {
userOrg = 'smalllee'//bintray.com用户名
groupId = 'com.edj'//jcenter上的路径
artifactId = 'dashview'//项目名称
.....
}


userOrg是bintray上显示的用户名,如下图



groupId是库引用的前缀:这里是com.edj.dashview

这里的artifactId 是你之前最初在bintary的maven中创建的那个package的名字,这里需要对应上 否则会上传失败



有些朋友有时也可能会遇到下面这个错

* What went wrong:
Execution failed for task ':dashview:bintrayUpload'.
> Could not create package 'smalllee/maven/dashview': HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]


出这个错的原因是你创建仓库的时候名称写的不是maven,也就是说你创建仓库的时候应该按照下面的方式,名字必须指定为maven



上面的错解决完以后,感觉离成功已经不远了,执行gradlew命令后又遇到一个错

Execution failed for task ':flybanner:bintrayUpload'.
> Could not upload to 'https://api.bintray.com/content/SmallLee/maven/flybanner/1.0.0/com/lxn/flybanner/1.0.0/flybanner-1.0.0-sources.jar': HTTP/1.1 404 Not Found [message:Subject 'SmallLee' was not found]


最后发现,出这个错的原因是因为一次只能上传一个library,如果你此时在其他library里面也进行了上传配置的话,就会报上面的错,这点一定要注意。

7.解决完上面的错误以后,就上传成功了,我们可以看到上传的项目



最后选择添加到jcenter



之后,我们还要等待审核,审核成功之后就可以使用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: