Android Studio: Cambiar una URL dependiendo de buildtype? (Utilizado para probar en depuración / liberación)
He estado leyendo algo sobre variantes y buildtypes y no sé si lo entiendo bien, pero me gustaría almacenar una URL para locahost (testing) y otra para producción (sitio en vivo en Internet).
Y necesito cambiarlos dependiendo de qué buildtype. ¿Es esta la forma correcta de hacer esto? O hay otra alternativa?
- Muévase hacia j8 y Jack. Error de sincronización de Gradle
- java.lang.NoSuchMethodError: No hay un método estático getDrawable (Landroid / content / Context; I) Landroid / graphics / drawable / Drawable;
- Presionado por defecto MenuItem con el borde de 9 parches después de Android Studio 2.2
- El emulador de Android no montará la tarjeta SD
- Dudas con nombres de sabores y paquetes
¿Alguien tiene un pequeño ejemplo?
¿Hay una manera de almacenar esta información en un archivo que no necesito confiar al control de fuente? Estoy utilizando el archivo gradle.properties para almacenar algunas contraseñas que utiliza gradle para las firmas .. Esto funciona muy bien como este archivo no comparto en el control de versiones.
Estoy un poco confundido del método correcto de usar y cómo implementarlo.
¿Algunas ideas?
- No se pudo resolver resource @ id / visible cuando se utiliza TextInputLayout
- Cómo generar automáticamente getters y setters en Android Studio
- Android OrderedBroadcast No funciona en la versión de lanzamiento
- La creación y ejecución de aplicaciones a través de Gradle y Android Studio es más lenta que a través de Eclipse
- ¿Hay una manera rápida de reorganizar manualmente los métodos en Android Studio?
- Problemas de procesamiento de estilos que faltan después de cada actualización
- Android Studio no reconoce las importaciones de Facebook
- Instant Run ejecutó una compilación e instalación completas ya que la instalación en el dispositivo no coincide con la compilación local en el disco
Puede utilizar el BuildConfig para suministrar diferentes URL para cada BuildType
buildTypes { debug { buildConfigField "String", "SERVER_URL", '"http://someurl/"' } release{ buildConfigField "String", "SERVER_URL", '"http://someotherurl/"' } }
El BuildConfig se generará automáticamente cada vez que sincronice su proyecto con el archivo gradle. En su código, puede acceder a la URL de esta manera:
BuildConfig.SERVER_URL
Si no desea confirmar estas URL, puede almacenarlas en su gradle.properties igual que su contraseña y tal y hacer referencia a ellas en el build.gradle.
buildConfigField "String", "SERVER_URL", serverurl.debug
buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' buildConfigField "String", "BASE_URL", '"url1"' debuggable false } debug { runProguard false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' buildConfigField "String", "BASE_URL", '"url2"' debuggable true }
Esto lo que necesita hacer en el gradle y hacer ejecutar dos aplicaciones (liberación y depuración) en un mismo teléfono sólo tiene que agregar
ApplicationIdSuffix ".debug"
En la porción de depuración. Como el nombre del paquete será diferente. Esto funcionó para mí.