6

如果我有 3 种风味风味 1、风味 2 和风味 3,则每种风味都有 Dev、Pat 和 Prod “子风味”版本,它们的参数不同,但每种主要风味都有不同的资源。

所以我现在有 9 种不同的风格,但只有 3 个不同的资源文件夹)。我希望相同的“子口味”使用相同的资源。

我怎样才能做到这一点?我在有关 flavorDimensions 的文档中看到过,但不确定如何配置资源文件夹。

目前我正在使用类似的东西

sourceSets {

   flavor1_dev{
            res.srcDir  'src/flavor1/res'
        }

   flavor1_prod{
            res.srcDir  'src/flavor1/res'
        }

   flavor2_dev{
            res.srcDir  'src/flavor2/res'
        }

   flavor2_prod{
            res.srcDir  'src/flavor2/res'
        }

}    
4

2 回答 2

1

你需要 Gradle 口味,例如。flavor1等,flavor2以及诸如等的构建类型。devprod

请参阅以下示例:http: //developer.android.com/tools/building/configuring-gradle.htmlhttp://tools.android.com/tech-docs/new-build-system/user-guide#TOC -Sourcesets-and-Dependencies

例如:

android.sourceSets.flavor1Debug 位置 src/flavor1Debug/

android.sourceSets.flavor1Release 位置 src/flavor1Release/

android.sourceSets.flavor2Debug 位置 src/flavor2Debug/

android.sourceSets.flavor2Release 位置 src/flavor2Release/

另外,这个问题非常相似How can I specify per flavor buildType sourceSets?

于 2016-02-08T17:31:19.750 回答
-2

只需将公共资源放在 main/res 中即可。main/res 中的所有资源都将被风味覆盖。例如,如果您想覆盖字符串资源添加,

主字符串文件:/src/main/res/values/strings.xml

<resources>
    <string name="app_name">Main</string>
    <string name="app_name_full">Main app</string>
    <string name="app_email">main@abc.com</string>
    <string name="app_phone">123</string>
    <string name="app_website">www.abc.com</string>
</resources>

和风味字符串文件:/src/flavor1/res/values/strings.xml

<resources>
    <string name="app_name">Flavour App Name</string>
</resources>

只有 app_name 会在风味中发生变化,而 app_full_name 等其他资源仍然可以在所有风味中访问。

于 2016-03-15T19:13:57.547 回答