Вы можете использовать либо метод buildConfigField , либо метод resValue блока buildType в плагине Android Gradle. Первый генерирует глобальные константы Java, а второй - ресурсы Android.
Вы можете просмотреть официальные документы, демонстрируя пример использования здесь .
В любом случае, я уточню здесь, если это поможет.
Сначала вы определяете одно или несколько полей конфигурации или значения res в вашем файле build.gradle
. В качестве примера для идентификатора AdMob вы должны определить строковые константы.
android {
buildTypes {
release {
buildConfigField "String", "ADMOB_ID", '"ConstantIdForRelease"'
resValue "string", "admob_id", "StringResourceForRelease"
}
debug {
buildConfigField "String", "ADMOB_ID", '"ConstantIdForDebug"'
resValue "string", "admob_id", "StringResourceForDebug"
}
}
При этом будут созданы BuildConfig.java
и временные generated.xml
файлы для вариантов выпуска и отладки:
Релиз:
/ app / build / сгенерированный / source / buildConfig / релиз /your/package/app/BuildConfig.java:
public final class BuildConfig {
public static final String ADMOB_ID = "ConstantIdForRelease";
}
/ app / build / генерированный / res / resValues / выпуск ] /values/generated.xml
StringResourceForRelease
Отладка:
/ app / build / generate / source / buildConfig / debug / your /package/app/BuildConfig.java:
public final class BuildConfig {
public static final String ADMOB_ID = "ConstantIdForDebug";
}
/ app / build / generate / res / resValues / debug /values/generated.xml
StringResourceForDebug
[1126 ] Затем в вашем коде вы просто используете константу или ресурс, как обычно:
callMethodThatNeedsAdModId(BuildConfig.ADMOB_ID);
// OR
callMethodThatNeedsAdModId(context.getString(R.string.admob_id));
Фактическое значение переменной конфигурации сборки или строкового ресурса будет определяться на основе текущего типа / варианта сборки. [ 1127]
В любом случае, так что вы должны использовать? Если вам нужен доступ к строке конфигурации в ресурсах XML (скажем, вы хотите изменить label
действия в файле AndroidManifest.xml
при отладке), вы должны использовать этот ресурс. В противном случае просто используйте свойство build config, так как вам не нужен контекст для доступа к нему.
Надеюсь, это поможет!
То, что я делаю,
:!gvim -c 'MyMake'
(где MyMake является пользовательской командой, которая может переключиться на соответствующий dir, сделать, и copen 20.)
и я делаю свое задание, в то время как сборка входит в другое окно.
Другая опция:
можно перенаправить, делают успехи в некоторый файл от оболочки или в энергии (:! make&). И затем при помощи
:cfile make_result_file
:cw
or
:copen 20
Достигают того же результата, как Вы использовали бы: сделайте
Попытайтесь использовать
:!start make
(больше информации о ": справка! запустите") - тот способ, которым энергия не должна ожидать процесса, запущенного для окончания - можно просто продолжить идти с редактированием).
Я использовал бы встроенные методы Вашей ОС для выполнения фоновых задач.
окна On, попытайтесь ввести
:!start make
На Linux / Mac OS X, попробуйте
:!make > /dev/null 2>&1 &
Вы не будете в состоянии видеть, что прогресс делает (в Vim), если Вы не устанавливаете очень последнюю версию Vim (v7.4 и много патчей или просто Vim 8). Теперь существует несколько плагинов, это использовало в своих интересах его. Мой BuildToolsWrapper является одним из них. Я протестировал его успешно на Linux и на окнах.
Прежде, который нам были нужны другие приемы. Я помню плагин Marc Weber, который смог эмулировать фоновую компиляцию в Windows. Были немногие другие. Я позволяю другим перечислить их.