使用it.buildConfigField获取字符串资源种类

时间:2019-03-29 21:31:13

标签: android gradle build android-productflavors

我尝试使用Android 3.3.2构建Andoird SettingsLib模块 在此模块的strings.xml文件中,存在重复的资源,例如:

<!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device -->
<string name="power_remaining_duration_only_shutdown_imminent" product="default">Phone may shutdown soon</string>
<!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device -->
<string name="power_remaining_duration_only_shutdown_imminent" product="tablet">Tablet may shutdown soon</string>
<!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device -->
<string name="power_remaining_duration_only_shutdown_imminent" product="device">Device may shutdown soon</string>

我觉得这是为了管理不同的产品口味(在这种情况下为终端包装)。

我是否只是简单地构建了代码而没有进行任何修改,所以我得到了多种定义的资源,例如:

  

错误:找到项目String / power_remaining_duration_only_shutdown_imminent超过一次

我开始尝试解决此问题,并且阅读了一些Android风格的页面。

我在我的应用build.gradle文件中添加了如下所示的风味:

    flavorDimensions "default"
productFlavors {
    device {
        applicationId
        "com.ebookfrenzy.buildexample.app.phone"
        versionName "1.0-phone"
        buildTypes.each {
            it.buildConfigField ("string","product","device")
        }
    }
    tablet {
        applicationId
        "com.ebookfrenzy.buildexample.app.tablet"
        versionName "1.0-tablet"
        buildTypes.each {
            it.buildConfigField ("string","product","default")
        }
    }
    defaultConfig {
        applicationId
        "com.ebookfrenzy.buildexample.app.default"
        versionName "1.0-tablet"
        buildTypes.each {
            it.buildConfigField ("string","product","default")
        }
    }
}

但这不能解决我的错误。

我如何才能用风味来形容我的遗嘱,以便在一次构建中仅设置一种多重定义的资源?

0 个答案:

没有答案