在我的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
(因为使用香草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版本?还是有另一种方法可以实现?
编辑:请注意,在versionName
部分中设置defaultConfig
字段适用于我的图书馆项目-使用上述方法无法通过编程方式进行设置。
答案 0 :(得分:0)
尝试将__init__
更改为tk.Canvas
,而不是像这样设置风味的名称和版本代码
variant.productFlavors.get(0).name