Как назначить ключ API в манифесте из класса Constant Value? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь присвоить значение ниже мета в манифесте.

В настоящее время мне присвоено значение из строки. xml class.

<meta-data
   android:name="com.google.android.geo.API_KEY"
   android:value= "@string/MAPS_API_KEY" />

Но я хочу что-то подобное ...

<meta-data
   android:name="com.google.android.geo.API_KEY"
   android:value= com.packagename.MyConstantInterface.MAPS_API_KEY />

У меня есть поиск много, но не нашли хорошего решения.

ПРИМЕЧАНИЕ. Я получаю все ключи API от сервера, сохраняю ключи в snappy db, а затем назначаю ключи из snappy db MyConstantInterface.

1 Ответ

0 голосов
/ 20 февраля 2020

Вы просто не можете просто использовать переменную java.

Вместо нее вам необходимо вставить переменные сборки в манифест

Объявление:

defaultConfig {
    ...
    manifestPlaceholders = [MAPS_API_KEY_FOR_MANIFEST: "your_maps_key_here"] // TO use in manifest file
    buildConfigField "String", "MAPS_API_KEY", '"your_maps_key_here"' // TO use in java file
}

Используется в AndroidManifest. xml:

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value= "${MAPS_API_KEY_FOR_MANIFEST}" />

Java Использование файла:

BuildConfig.MAPS_API_KEY

Для получения дополнительной информации, вы можете взглянуть на это и это.

...