使用jcenter 的过程中,遇到一点问题,问题以后会不断出现,所以坑也要不停地填
开始使用 app 作为上传的 library,出现如下错误
于是新建一个 android library名为“mylibrary”,然后在 mylibrary 添加
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//这是添加的,注意要在com.android.library后面
这里使用的是 bintrary-release,比较方便,github网址如下:
https://github.com/novoda/bintray-release
接着在项目的 build.gradle 中添加
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.novoda:bintray-release:0.3.4'//这是添加的
}
}
接着很着急的就开始 sync now,上面的错误消失了,但是又出现了一个错误,
Error:Exception thrown while executing model rule:
org.gradle.api.publish.plugins.PublishingPlugin$Rules#addConfiguredPublicationsToProjectPublicationRegistry
(org.gradle.api.internal.artifacts.ivyservice.projectmodule.ProjectPublicationRegistry,
org.gradle.api.publish.PublishingExtension, org.gradle.api.internal.project.ProjectIdentifier)
开始马上想到谷歌 stackoverflow,英语菜啊,原来,在 mylibrary 的build.gradle 最下面添加这个
publish{
userOrg = 'username'
groupId = 'com.example.z'
artifactId = 'mylibrary'
publishVersion = '0.0.1'
desc = 'this is a Test'
website = '***'
}
同时记得在 library 的 build.gradle 中,添加下面语句:
android {
defaultConfig {
}
buildTypes {
}
lintOptions{
abortOnError false //这是添加的
checkReleaseBuilds false //这是添加的
}
}
最终编译通过,接下来在 android Terminal 中输入以下命令
然而却报错,后来以为 gradlew 没有安装成功,所以又多此一举地输入以下命令
在很多 “…….”,之后,以为可以了,于是又执行上面那句命令,还是报一样的错,发现是路径的问题,
在linux下,一般要加 “./”,在 windows中不用,就是说,当前的路径是当前项目下,如下:
也就是去掉了前面的 “$./”,终于开始顺利执行了,后面又报了错,
这次很明显了,app 中没有 lint,所以又在 app 的 build.gradle 中添加了 两句话,跟在mylibrary 中添加
的两句话一模一样,然后再次执行,结果最终成功了,贴两张图
登录 bintray,good,预期一样,在 https//bintray.com/your username/maven,看到了这个
最后 add to jcenter 如果审核通过就可以一句话使用了,如果想重新上传 同一个版本的 需要将 bintray上面的删除掉,否则会报错,说已经存在,除非版本不同,才能接着上传,删掉也很简单,在maven 下,点击edit ,然后delete即可