And*_*dov 5 android gradle android-library
当我从5.0更新到5.1时,Gradle改变了它的行为。
假设我们有一个带有名为library的单个模块的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))
}
Run Code Online (Sandbox Code Playgroud)
更新:
如果我在build.gradle.kts中添加以下代码:
afterEvaluate {
android.libraryVariants.forEach { libraryVariant ->
libraryVariant.outputs.forEach { output ->
println(output.outputFile.name)
}
}
}
Run Code Online (Sandbox Code Playgroud)
它将打印:
library-debug.aar
library-release.aar
Run Code Online (Sandbox Code Playgroud)
现在它开始看起来像Gradle 5.1中的bug
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |