大家都知道,android studio 有一个功能就是使用第三方jar的时候在build.gradle中直接
compile 'com.android.support:design:23.4.0'
那么这段代码使用的过程中android studio都做了什么事情呢,其实我也不知道,哈哈,但是我猜想应该是从某一个服务器上下载了代码吧。
那么我们开始今天的学习,把我们自己的代码上传到天上,然后这样下载下来。
首先呢,新建一个project(project知道吧,不是eclipse的project,是android studio的projec,还不知道的话就去抽自己个大嘴巴子):
首先进这个网站申请账号https://bintray.com,申请完了做下面的工作。
1.在project的build.gradle里面添加如下代码:
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
没有图知道你们不会的,因为我也不会哈哈:
2.module的build.gradle里面添加如下代码,把你没有的写上,有的不要动
apply plugin: 'com.android.application'
//配置插件方法1
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
//提交到仓库中的版本号
version = "1.0.0"
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
resourcePrefix "superbro"
defaultConfig {
applicationId "com.superbro.myapplication"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0-beta1'
compile 'com.android.support:design:24.0.0-beta1'
compile 'com.android.support:support-v4:24.0.0-beta1'
}
//方法1
def siteUrl = 'https://github.com/choubaguai/PhotoSelecter' // 项目的主页 这个是说明,可随便填
def gitUrl = 'https://github.com/choubaguai/PhotoSelecter' // Git仓库的url 这个是说明,可随便填
group = "com.superbro" // 这里是groupId ,必须填写 一般填你唯一的包名
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'Android Photo Selecter' //项目描述
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'superbro' //填写开发者的一些基本信息
name 'superbro' //填写开发者的一些基本信息
email '[email protected]' //填写开发者的一些基本信息
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user") //读取 local.properties 文件里面的 bintray.user
key = properties.getProperty("bintray.apikey") //读取 local.properties 文件里面的 bintray.apikey
configurations = ['archives']
pkg {
repo = "maven"
name = "photoselecter" //发布到JCenter上的项目名字,必须填写
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
//这段代码一会给你们解释哈
javadoc {
options{
encoding "UTF-8"
charSet 'UTF-8'
author true
version true
links "http://docs.oracle.com/javase/7/docs/api"
}
}
3.在local.propertis里面添加:
//username就是你刚才注册的时候写的用户名,注意不是邮箱,
//paikey是这个网站给你生成的一个apikey,怎么找到它呢,看下面的图
bintray.user=username
bintray.apikey=paikey
有人会问了,怎么进入这个界面,好吧,看IP,自己YY。
然后呢,进去之后点击1,会让你输入密码,密码输入完了,点击2,就会看到3了,然后复制粘贴。
好了,到了这一步,已经把所有的准备工作做好了,然后呢,sync你的项目
等同步完了,最重要的时刻来了,注意,在android studio的下面那一排找到
Terminal,在里面输入
gradlew install
如果没有什么问题,会显示:
BUILD SUCCESSFUL
现在我们已经成功一半了。下一步是上传编译的文件到bintray,使用如下的命令:
gradlew bintrayUpload
如果没有什么问题,会显示:
BUILD SUCCESSFUL
这时候去你刚才注册的网站里就可以看到你上传的项目了,还没有完,你打开项目,右下角有一个
点击一下进去之后啥也别弄,直接点击下面的send就OK了,
然后等管理员审核通过了之后你就可以使用了,怎么使用?好吧,
下面是问题总结,
1,提示GBK什么的乱码,一般都是中文问题,你提交的代码里面有中文注释或者其他的中文,解决办法就是添加上面的代码:
javadoc {
options{
encoding "UTF-8"
charSet 'UTF-8'
author true
version true
links "http://docs.oracle.com/javase/7/docs/api"
}
}
2.提示找不到class或者intface或者enum,解决办法如下:
用editplus把你文件的编码格式改成UTF-8,不要用notepad,我用了没效果。
3.提示找不到用户名和APIKEY,原因是大小写一定要统一。
4.提示HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
apikey 和 用户名的值写错了。
基本上就是这几个问题。结束。