Подтвердить что ты не робот

Конфигурация сервера android studio gradle

В Android Studio и используя Gradle, как мне настроить переменную DEBUG/RELEASE. Например, когда я запускаю свое приложение в DEBUG, хочу, чтобы мой сервер был:

SERVER = "http://www.mytestserver.com";

Когда я запускаю свое приложение в RELEASE, я хочу, чтобы мой URL-адрес сервера:

SERVER = "http://www.myproductionserver.com";

Как я могу это сделать?

Привет

4b9b3361

Ответ 1

Начните с этой ссылки: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types

Помимо всего прочего, этот раздел означает, что модуль в проекте Android Studio может использовать отдельные каталоги "отладки" и "выпуска" исходного кода/ресурсов и т.д.

Итак, например, в проекте, созданном Android Studio (не импортированном из Eclipse), вы можете использовать эти файлы без какой-либо дополнительной настройки в "build.gradle":

  • <Module> /src/main/res/values/strings.xml (созданный по умолчанию IDE)
  • <Module> /src/debug/res/values/strings.xml (созданный вручную вами)
  • <Module> /src/release/res/values/strings.xml (созданный вручную вами)

В отладочном каталоге файле strings.xml вы можете определить новый ресурс строки, например:

<string name="server_uri">http://www.mytestserver.com</string>

И в файле release strings.xml вы можете указать один и тот же ресурс строки, но с другим значением:

<string name="server_uri">http://www.myproductionserver.com</string>

И эти ресурсы автоматически добавляются во время сборки Gradle к другим строковым значениям в каталоге main, в зависимости от того, какой тип сборки используется - без необходимости какой-либо явной настройки.

Ответ 2

Строки могут быть добавлены только с Gradle в приложении /build.gradle

Вы можете сохранить здесь: URL-адреса сервера, Google Map Api Key и т.д.

android {
//...
        buildTypes {
        release {
            resValue "string", "server_uri", "http ...1"
            resValue "string", "google_maps_key", "your key"
            shrinkResources true
            debuggable false
        }
        releaseStaging {
            resValue "string", "server_uri", "http ...2"
            resValue "string", "google_maps_key", "your key2"

            shrinkResources true
            debuggable false
        }
        debug {
            resValue "string", "server_uri", "http ...3"
            resValue "string", "google_maps_key", "your key 3"
            shrinkResources true
            debuggable true
        }
    }

использование:

в коде как простая строка:

getString(R.string.server_uri);

в манифесте:

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="@string/google_maps_key" />