结合 BuildType 和 Flavor 资源

anb*_*ber 5 android gradle

我有 2 个版本的应用程序:付费应用程序和免费应用程序。我使用 gradle 和 Android Studio。我有下一个文件夹结构: src文件夹,里面有 3 个文件夹:main, paidapp, freeapp- 其中paidapp 和 freeapp 是口味。我的配置:

defaultConfig {
    applicationId "com.company"
}

buildTypes {
    debug {
        applicationIdSuffix '.dev'
    }
}

productFlavors {
    freeapp {
    }
    paidapp {
        applicationId 'com.company.paidapp'
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要什么:我的手机上有 4 个应用程序:

package com.company.dev, name "dev freeapp"
package com.company.paidapp.dev, name "dev paidapp"
package com.company, name "freeapp"
package com.company.paidapp, name "paidapp"
Run Code Online (Sandbox Code Playgroud)

包没问题,gradle自动管理它,但是如何为应用程序创建不同的名称?

应用程序名称strings.xml 位于src/paidapp/res/values/strings.xml

<string name="appName">dev paidapp</string>
Run Code Online (Sandbox Code Playgroud)

src/freeapp/res/values/strings.xml

<string name="appName">dev freeapp</string>
Run Code Online (Sandbox Code Playgroud)

我看了那里 - http://tools.android.com/tech-docs/new-build-system/resource-merging

优先级顺序如下:BuildType -> Flavor -> main -> Dependency。

所以我可以从 BuildType 或 Flavor 中选择或字符串,但是如何组合 BuildType 和 Flavor 呢?

pde*_*d59 5

只需创建一个文件夹src/freeappRelease/res/values/并在该文件夹中添加您非常具体的字符串即可。