發(fā)布項目至JCenter請前往AndroidStudio發(fā)布項目到Maven(JCenter)
本文將介紹上傳構(gòu)建過程中遇到的問題以及上傳至Bintray因網(wǎng)路問題失敗的解決辦法。
1:報錯信息:ExampleUnitTest.java:15: 錯誤: 找不到符號纵穿。解決辦法:在你要發(fā)布的模塊中的build.gradle中添加如下代碼:還需要檢查其他模塊和app模塊是否已添加趋惨。
android {
defaultConfig {
//加上這一句
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//加上這三句
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
2:報錯信息:Conflict with dependency 'com.android.support:support-annotations'in project陵霉。解決辦法:在你的app項目中build.gradle中加入下面一句話
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'
}
3:報錯信息:錯誤: 編碼GBK的不可映射字符错敢。解決辦法:在項目根build.gradle中添加如下代碼:
allprojects {
//編譯時報注釋GBK編碼錯誤解決
tasks.withType(Javadoc) {
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
}
4:報錯信息:@return或@param不能為空废封,解決辦法:
allprojects {
//編譯時報注釋GBK編碼錯誤解決
tasks.withType(Javadoc) {
//方法上忽略@return和@param注解未添加說明注釋
options.addStringOption('Xdoclint:none', '-quiet')
//解決GBK編碼錯誤提示
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
}
5:其他情況編譯失敗嘗試在你的app和模塊中的build.gradle中添加如下代碼:
//忽略警告
android {
//忽略警告
lintOptions {
abortOnError false
}
}
6:Skipping upload for missing file D:xx\xx\xx.jar
今天在更新版本至Bintray時報Skipping upload for missing file D:xx\xx\xx.jar 錯誤倚搬,還有相同的錯誤后綴為.pom或者其他文件..導(dǎo)致最后只成功上傳一個.aar文件甚至上傳成功后目錄為空防泵。
Bintray不完整的版本
解決辦法:
//1:在AndroidStudio中的Terminal中執(zhí)行 gradlew generatePomFileForReleasePublication
//2:再次執(zhí)行 gradlew publishReleasePublicationToMavenLocal
//3:最后執(zhí)行g(shù)radlew clean build bintrayUpload -PbintrayUser=你的Bintray用戶名 -PbintrayKey=用戶下的API KEY -PdryRun=false
7:上傳\更新項目至Bintray因網(wǎng)絡(luò)問題失敗解決辦法
當(dāng)其他錯誤都排除了,上傳\更新代碼庫經(jīng)過漫長的等待后闽烙,經(jīng)常socket異常...不管翻不翻墻都會出現(xiàn)95%以上幾率上傳至bintray失敗翅睛,所以解決網(wǎng)絡(luò)問題顯然是很雞肋的。本文解決辦法是換個姿勢更新\上傳你的新版本:將你的模塊在本地構(gòu)建成包含.aar黑竞、.pom宏所、.jar的.zip壓縮文件,再手動將你的.zip文件上傳至Bintray摊溶,上傳成功后Bintray內(nèi)部會自動解壓縮還原項目目錄。
7.1:準(zhǔn)備.gradle配置文件
創(chuàng)建一個xxx.gradle文件充石,將下面內(nèi)容完整拷貝至xxx.gradle中
//應(yīng)用插件 maven
apply plugin: 'maven'
//聲明你的包名
def groupId = 'xxx.xxx'
//聲明模塊名稱
def artifactId = 'xxx.xxx'
//要發(fā)布的版本號
def version = '1.0.1'
def localReleaseDest = "${buildDir}/release/${version}"
task androidJavadocs(type: Javadoc) {
failOnError = false
source = android.sourceSets.main.java.srcDirs
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath += files(ext.androidJar)
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
//Maven本地倉庫構(gòu)建
uploadArchives {
repositories.mavenDeployer {
pom.groupId = groupId
pom.artifactId = artifactId
pom.version = version
// Add other pom properties here if you want (developer details / licenses)
repository(url: "file://${localReleaseDest}")
}
}
//壓縮為zip
task zipRelease(type: Zip) {
from localReleaseDest
destinationDir buildDir
archiveName "release-${version}.zip"
}
//輸出到本地補錄莫换,位于你的模塊中的build下
task generateRelease {
doLast {
println "Release ${version} can be found at ${localReleaseDest}/"
//注意此處,Windows系統(tǒng)需要加入\\轉(zhuǎn)義符骤铃,Mac請去掉轉(zhuǎn)義符"\\"
println "Release ${version} zipped can be found ${buildDir}\\release-${version}.zip"
}
}
generateRelease.dependsOn(uploadArchives)
generateRelease.dependsOn(zipRelease)
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
7.2:配置要發(fā)布\更新的模塊build.gradle文件
//在你要發(fā)布的模塊build.gradle中頭部配置
apply from: 'xxx.gradle'
7.3:在你的發(fā)布\更新的模塊根目錄下運行構(gòu)建命令
AndroidStudio 的Termianl 中cd 到你的模塊的根目錄下拉岁,輸入如下命令,執(zhí)行惰爬。
//gradlew在模塊中是找不到命令的喊暖,因此你需要調(diào)用上一級(根目錄)的gradlew
..\gradlew generateRelease
//當(dāng)然也可以直接在根目錄運行構(gòu)建命令的,啊哈哈
gradlew generateRelease
本地構(gòu)建.zip成功
如果構(gòu)建完成后找不到.zip壓縮包撕瞧,可自行到模塊-build-release-版本號-目錄中陵叽,將你的文件夾手動壓縮成ZIP
手動壓縮zip文件位置圖示
7.4:手動上傳至Bintray
-
7.4.1:添加一個版本
構(gòu)建成功后檢查zip文件的完成性狞尔,確認無誤后前往Bintray添加一個版本,然后上傳文件巩掺。
Bintray 項目添加版本 -
7.4.2:上傳文件
上傳文件
上傳成功后你看到的應(yīng)該是這樣的
上傳至Bintray成功
其他錯誤發(fā)現(xiàn)后持續(xù)更新...