所以,标题几乎总结了我的问题。谁知道怎么修它?上次我构建apk时,它在AS 2.X上工作正常,但是,我现在正在使用Kotlin开发,所以我必须使用AS 3.0。
我使用AS 3.0 Canary 7(这个项目是一个新项目)
这是我的库中的虚拟课程(存储在"域" .library.mylibrary)
class Test {
fun hello(): String {
return "hello"
}
}
这是我的(mylibrary)gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
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(dir: 'libs', include: ['*.jar'])
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:26.0.0-beta2'
testImplementation 'junit:junit:4.12'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" //Declared in project level gradle: ext.kotlin_version = '1.1.3-2'
}
我的gradlew.bat clean build --info log:https://pastebin.com/bfTZ5s4e
答案 0 :(得分:0)
Android Studio默认情况下不会生成jar,而是 AAR 文件。如果您想获得 jar输出,则需要在apply plugin: 'maven-publish'
文件的顶部实施mylibrary/gradle.build
并阅读以下文档:Chapter 36. Maven Publishing (new)
另一个注意事项是,我建议你不要直接在你的发布工件上使用ProGuard ,而是提供一个消费者ProGuard文件并让你的库的用户来处理这个任务,否则他们会将很难引用混淆代码。请阅读我对here
的回答虽然构建任务可能会生成输出,但已知assemble
任务(或assembleRelease
)将生成 aar < / strong>输出。
尝试运行以下命令:
./gradlew clean assembleRelease
如果我没弄错的话,检查/mylibrary/build/outputs/apk/release/
中的输出。