覆盖Gradle中多风味设置中的资源

时间:2014-03-08 14:07:01

标签: android gradle android-gradle

我遇到的问题是我无法生成所需的资源文件。在我的项目设置中,我已经在资源文件(keys.xml)中定义了不同风格(amazon,googlePlay)之间的某些值。问题主要发生是因为live / qa版本之间的键也不同。

所以我想拥有的最后一把钥匙是:

  • amazonPaidQa - >来自'src / amazon / res / values / keys.xml'
  • 的密钥
  • amazonPaidLive - > 'src / amazonPaid / res / values / keys.xml'中的键(不起作用,因为这需要我在'src / amazonPaidLive'中定义键文件)

我的问题是,是否可以在'interim'构建变体中定义资源,如上面提到的'amazonPaid',这样我就不必在所有可能的实时构建变体(amazonPaidLive,amazonFreeLive)之间复制该文件。或者也许有人有更好的建议如何处理这个问题?

build.gradle definitions

buildTypes {
    qa {
        //config
    }

    live {
        //config
    }
}

flavorGroups "market", "client"

productFlavors {
    //define the market flavors
    amazon {
        flavorGroup "market"
    }

    googlePlay {
        flavorGroup "market"
    }

    //define the client flavors
    free {
        flavorGroup "client"
        packageName "com.example.free"
    }

    paid {
        flavorGroup "client"
        packageName "com.example.paid"
    }
}

文件夹结构如下:

- src/main
-- AndroidManifest.xml
-- res/values/keys.xml
- src/live
- src/qa
- src/amazon
-- res/values/keys.xml
- src/googlePlay
-- res/values/keys.xml
- src/paid
- src/free

Android Manifest代码段

<application>
    ...
    <meta-data android:name="app_id" value="@string/app_id" />
</application>

0 个答案:

没有答案