Android Studio 3.0 Canary 7无法生成AAR / JAR文件

4

所以,标题基本上概括了我的问题。有人知道如何解决它吗?上次我构建apk时,在AS 2.X上它工作正常,但是现在我正在使用Kotlin开发,所以我必须使用AS 3.0。

我使用的是AS 3.0 Canary 7(这个项目是一个新项目)

这是我库中的虚拟类(存储在“domain”.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 日志链接如下:https://pastebin.com/bfTZ5s4e

请执行命令 ./gradlew clean build --info 并附加日志。 - guenhter
@MosesAprico,请在依赖项中将“compile”替换为“implementation”。 - DeKaNszn
@guenhter 当gradlew.bat执行完成后会自动关闭,如何保留它? - Moses Aprico
@MosesAprico 你应该通过 cmd 运行它(我猜你在使用Windows)。所以打开 cmd 并导航到你的项目。然后使用 gradlew.bat clean build --info 来调用它。输出将保留在你的 cmd 会话中。 - guenhter
@guenhter 完成了。请检查我的编辑。 - Moses Aprico
显示剩余4条评论
1个回答

0

Android Studio默认不生成jar文件,而是生成AAR文件。如果您想要获得jar输出,您需要在mylibrary/gradle.build文件的顶部实现apply plugin: 'maven-publish'并阅读以下文档:第36章 Maven发布(新)

另一个注意点是,我建议您不要直接使用ProGuard在您的发布构件上,而是提供一个消费者ProGuard文件,并让您的库的用户处理该任务,否则他们将很难引用混淆的代码。阅读我的答案这里

虽然build任务可能会生成输出,但众所周知,assemble任务(或assembleRelease)才是生成aar输出的任务。

尝试运行以下命令:

./gradlew clean assembleRelease

如果我没记错的话,请检查/mylibrary/build/outputs/apk/release/中的输出。


1
仍然只能在Studio 3.1.1中看到一个aar文件。 - JPM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接