我花了数天时间尝试可以找到的所有教程,并将我的Android库GnarlyDialog发布到Bintray。
不久前,我将资源上传到Bintray,可以通过执行R.drawable.library_resource_name
在应用程序中进行引用,但是库代码本身从未成功上传。
我从所有教程中都删除了build.gradle文件中的所有杂物,并且想知道是否有人可以帮助我确切地显示我需要添加到gradle文件中以便成功将库上传到Bintray。
我使用的是AndroidStudio建议的最新AndroidStudio 3.2.1和最新的Gradle版本4.6。
我的Bintray使用名和API密钥位于{。{1}}和bintrayUserName
的local.properties文件中,我有一个名为bintrayApiKey
的Bintray仓库,我想在其中发布我的Android图书馆。
最后,许多教程让您从命令行终端运行maven
,该终端总是会因几个不同的错误而失败。我确保将Android Studio设置为gradlew clean build install bintrayUpload
,但是那些终端gradle命令似乎仍然不起作用。即使是简单的Use embedded JDK
命令也会因以下错误而失败,因此无法从命令行运行gradle任务也可能是问题的一部分。尽管所有的Build-> MakeProject / CleanProject / RebuildProject都可以从IDE正常运行。
在此感谢您为解决此错误并帮助我发布Android库提供帮助!
gradlew tasks
命令错误
失败:构建失败,并出现异常。
其中: 构建文件'C:\ *********** \ GnarlyDialogSampleApp \ app \ build.gradle'行:1
出了什么问题:
评估项目':app'时发生问题。
未初始化的对象存在于反向分支70
异常详细信息:
位置:
com / android / build / gradle / internal / scope / BuildArtifactsHolder.newArtifact(Lcom / android / build / api / artifact / BuildableArtifact;)Lcom / android / build / gradle / internal / scope / BuildArtifactsHolder $ BuildableArtifactData; @ 119:转到
原因:
字节码中存在错误
字节码: 0x0000000:bb02 0559 2bb9 0208 0100 c000 b82b b902 0x0000010:0c01 0001 b902 1202 0059 1302 14b8 0051 0x0000020:c001 734d 3a0d 3a0c 3a0b 2c4e bb01 a659 0x0000030:2c10 0ab8 0177 b701 a7c0 00b8 3a04 2db9 0x0000040:018e 0100 3a05 1905 b901 9401 0099 002d 0x0000050:1905 b901 9801 003a 0619 0419 06c0 00f1 0x0000060:3a07 3a0e 1907 b902 1501 003a 0f19 0e19 0x0000070:0fb9 01ad 0200 57a7 ffcf 1904 c001 af3a 0x0000080:0e19 0b19 0c19 0d19 0eb7 0218 b0
Stackmap表: full_frame(@ 70,{Object [#2],Object [#83],Object [#371],Object [#371],Object [#184],Object [#400],Top,Top,Top,Top,页首,未初始化[#0],未初始化[#0],对象[#184]},{}) same_frame(@ 122)
我的顶级项目级别的build.gradle文件是:
gradlew tasks
我的库模块级别的build.gradle文件是
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我的示例应用程序级别的build.gradle文件是
apply plugin: 'com.android.library'
android {
compileSdkVersion 26
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 7
versionName "0.1.6"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
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'
}
此外,我的gradle-wrapper.properties文件显示了最新的gradle版本4.6是
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "me.seandillon.gnarlydialogsampleapp"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:26.1.0'
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'
// Add the library project locally as a dependency
implementation project(':gnarlydialog')
}
此外,distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
会输出此内容(它表示Windows 8.1,但我使用的是Windows 10)
gradlew --version