Использование it.buildConfigField для строковых ресурсов - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь собрать модуль Andoird SettingsLib с Android 3.3.2. В этом модуле файлы 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")
        }
    }
}

Но это не решило мою ошибку.

Как я могу настроить параметры моего beuild с помощью ароматов, чтобы выделить только один многократно определенный ресурс во время одной сборки?

...