微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在gradle 5.1上指定android组装的库文件名

当我从5.0更新到5.1时,Gradle改变了它的行为.

让我们假设我们有一个带有单个模块命名库的android项目.
在Gradle 5.0(和以前的版本)上执行./gradlew assembleRelease或./gradlew assembleDebug生成的输出分别是library-release.aar或library-debug.aar.

在我更新到Gradle 5.1(我也尝试过5.1.1)后,它只为任何构建类型生成library.aar,而输出文件名中没有任何构建类型分类.

所以我的问题是:我如何强制Gradle 5.1为不同的构建类型设置正确的输出文件命名,就像以前一样?下面是我的库模块的build.gradle.kts,但我不认为它有什么问题:

import org.jetbrains.kotlin.config.KotlinCompilerVersion

plugins {
    id("com.android.library")
    id("kotlin-android")
    id("maven-publish")
}

val libraryVersion = "1.5.0"

android {
    compileSdkVersion(28)

    defaultConfig {
        minSdkVersion(16)
        targetSdkVersion(28)
        versionCode = 1
        versionName = libraryVersion
    }

    lintOptions {
        isAbortOnError = false
    }

    buildTypes {
        getByName("release") {
            isMinifyEnabled = false
            proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
        }
    }
}

dependencies {
    implementation(fileTree(mapOf("include" to listOf("*.jar"), "dir" to "libs")))
    implementation(kotlin("stdlib-jdk7", KotlinCompilerVersion.VERSION))
}

更新:

如果我将以下代码添加到build.gradle.kts:

afterEvaluate {
    android.libraryVariants.forEach { libraryVariant ->
        libraryVariant.outputs.forEach { output ->
            println(output.outputFile.name)
        }
    }
}

它将打印:

library-debug.aar
library-release.aar

现在它开始看起来像gradle 5.1中的一个bug

解决方法:

正如我们在https://github.com/gradle/gradle/issues/8328中看到的那样,这是一个在Android Gradle Plugin 3.4中修复的错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐