Как объединить строковый ресурс и создать переменную в манифесте Android - PullRequest
0 голосов
/ 27 февраля 2019

Предшественник: я хочу локализовать имя приложения (используя строковые ресурсы)
и в то же время добавить суффикс типа сборки ("DEBUG") из файла Gradle.

Здесь я пытаюсь объединитьстроковый ресурс "app_name" и переменная gradle "AppNameSuffix"

Ожидаемое имя приложения:
для аромата продукта " all " - "My application DEBUG"
для продуктаflavour " china " - "Отладка моего китайского приложения"
и последующий тип сборки с суффиксом для "RELEASE" и "CANARY"


build.gradle:

buildTypes {
    debug {
        manifestPlaceholders = [AppNameSuffix: "DEBUG"]
        ...
    }
    release{
        manifestPlaceholders = [AppNameSuffix: "RELEASE"]
        ...
    }
    canary{
        manifestPlaceholders = [AppNameSuffix: "CANARY"]
    }
}
productFlavors {
    china {
        applicationId "com.myapplication.china"
    }
    all {
        //default
        applicationId "com.myapplication.all"
    }
}

Манифест:

<application
    ...
    android:label="@{@string/app_name(${AppNameSuffix})}">
    ...
</application>

ошибка в символе "$" при оценке переменной gradle


main / res / string.xml:

<string name="app_name">My application %s</string>

china / res / string.xml:

<string name="app_name">My Chinese application %s</string>

Ссылки:

...