Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 將開源項目發布到JCenter及問題總結

android 將開源項目發布到JCenter及問題總結

編輯:關於Android編程

大家都知道,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'

沒有圖知道你們不會的,因為我也不會哈哈:

這裡寫圖片描述<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="hljs bash">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 和 用戶名的值寫錯了。

基本上就是這幾個問題。結束。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved