gpt4 book ai didi

android - 从自定义 Gradle 插件中动态添加构建风格

转载 作者:搜寻专家 更新时间:2023-11-01 08:27:38 25 4
gpt4 key购买 nike

我正在编写一个自定义 Gradle 插件,它将向 Android 项目添加一个或多个任务。其中一项任务需要将“临时”构建风格添加到 Android 项目已定义的现有构建风格列表中。

我已尝试通过更改名称来更改现有构建风格之一,如以下代码所示:

import com.android.build.gradle.internal.dsl.ProductFlavor
import org.gradle.api.Plugin
import org.gradle.api.Project

class MyPlugin implements Plugin<Project> {

@Override
void apply(Project target) {
ProductFlavor adHocFlavor = target.android.productFlavors.first()
adHocFlavor.name = 'adHoc'
target.android.productFlavors.add(adHocFlavor)
}

}

这里的问题是 target.android.productFlavors 中的所有构建风格此时都是只读的,并抛出以下错误:

无法为 ProductFlavor_Decorated 设置只读属性“name”的值

有人知道如何从插件中动态添加构建风格吗?

最佳答案

它应该像这样简单:

@Override
void apply(Project target) {
target.android.productFlavors.create("name")
}

productFlavorsNamedDomainObjectContainer 的实例。

来自 docs of NamedDomainObjectContainer.create() :

Creates a new item with the given name, adding it to this container.

因此,这将使用提供的名称创建一个 ProductFlavor,并将其添加到 productFlavors

关于android - 从自定义 Gradle 插件中动态添加构建风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43258998/

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