gpt4 book ai didi

android - 如何使用 gradle 插件 3.2 设置库版本?

转载 作者:行者123 更新时间:2023-11-29 14:12:25 24 4
gpt4 key购买 nike

在我的 android 库项目中,我曾经这样做过:

android.libraryVariants.all { variant ->
def flavourName = variant.productFlavors.get(0).name
def buildTypeName = variant.buildType.name

def buildVersion = calculateVersion( flavourName, buildTypeName )
variant.mergedFlavor.versionName = buildVersion
}

这在 gradle 插件 3.1.3 之前一直运行良好。现在我正在试用 3.2.0-beta04(因为它在使用 vanilla cmake 时要快得多)并且我收到了这个错误:

versionName cannot be set on a mergedFlavor directly.
versionNameOverride can instead be set for variant outputs using the following syntax:
android {
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.versionNameOverride = "6.12.0"
}
}
}

好的,我采纳建议:

android.libraryVariants.all { variant ->
def flavourName = variant.productFlavors.get(0).name
def buildTypeName = variant.buildType.name

def buildVersion = calculateVersion( flavourName, buildTypeName )
variant.outputs.each { output ->
output.versionNameOverride = buildVersion
}
}

现在我得到这个错误:

 Could not set unknown property 'versionNameOverride' for object of type com.android.build.gradle.internal.api.LibraryVariantOutputImpl.

versionNameOverride 属性似乎只针对应用程序变体实现,而不是针对库变体。这是否意味着现在已弃用对设置 Android AAR 版本的支持?或者有其他方法可以实现吗?

编辑:请注意,在 defaultConfig 部分中设置 versionName 字段适用于我的库项目 - 它只是无法使用上述方法以编程方式设置。

最佳答案

尝试改变variant.productFlavors.get(0).namedef flavor = variant.mergedFlavor , 而不是像那样为 flavor 设置名称和版本代码

flavor.versionName = versionName
flavor.versionCode = versionCode
variant.outputs.all { output ->
output.setVersionNameOverride(versionName)
output.setVersionCodeOverride(versionCode)
}

关于android - 如何使用 gradle 插件 3.2 设置库版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51540479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com