android-gradle-plugin - 使用 applicationVariants.all 中的 resValue

标签 android-gradle-plugin

有人在迭代每个变体时使用 resValue 来设置值吗? 无法让这样的事情发挥作用

applicationVariants.all { variant ->
    //none of these work
    variant.mergedFLavor.setResValue("integer","key","value")
    variant.mergedFlavor.resValue "integer", "key", "value"
}

我有以下变体结构:

buildTypes{
    debug {...}
    stage {...}
    release{...}
}
productFlavors {
    flavorDimensions "country", "store"

    uk {
        flavorDimension "country"
    }
    us {
        flavorDimension "country"
    }

    amazon {
        flavorDimension "store"
    }
    google {
        flavorDimension "store"
    }
}

我正在寻找为构建类型为发布的每个[国家/地区]设置一个tracking_id。并为每个[国家]+[商店]组合设置唯一的代码。 我知道国家/商店代码可以使用以下目录中的资源文件来完成:

src/ukAmazon/res
src/ukGoogle/res
src/usAmazon/res
src/usGoogle/res

目录中的跟踪 ID:

src/ukAmazonRelease/res
src/ukGoogleRelease/res
src/usAmazonRelease/res
src/usGoogleRelease/res

但是最好将所有内容都保留在脚本中并避免重复 res 文件。当更多国家加入时,情况会变得更加困惑。

最佳答案

对于仍然感到困惑的人,只需将脚本修改为如下所示即可:

applicationVariants.all { variant ->
    variant.resValue "integer", "key", "value"
}

关于android-gradle-plugin - 使用 applicationVariants.all 中的 resValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24802532/

相关文章:

java - 将Android应用程序转换为Android库时出错

android - 找出新版本可用于 Android Studio 项目中使用的外部库的最佳方法是什么

android - 配置构建以便启动应用程序,而不是 Activity

android - 无法解析符号 'MultiDex'

android - FragmentStateAdapter 抛出 java.lang.IllegalStateException : Design assumption violated after configuration change

android - 如何从基于Android Studio的Gradle中的文件动态添加构建类型?

android - 如何使用 Android aaptOptions?

android - 如何在 Gradle 中的 buildType 上添加条件 afterEvaluate

android - Android Studio 项目开启时间过长

java - 无法将 java 文件添加到付费产品 flavor 中