¿Cómo configuro una variable de entorno en Android Studio antes de ejecutar mi compilación gradle?
Mi compilación de Gradle examina una variable de entorno denominada BUILD_NUMBER para determinar la versión a asignar a mi aplicación android de la siguiente manera:
def buildNumber = System.getenv("BUILD_NUMBER") ?: "local"
Por tanto, siempre y cuando se establezca esa variable de entorno, el número de compilación se usará en defaultConfig como sigue:
- AndroidStudio (0.8.9 Mac) No se pudo sincronizar el nuevo proyecto Gradle
- Error de OpenCV Library con AndroidStudio
- Artifact 'com.android.tools.build:gradle:0.12.1:gradle.jar' no se encuentra en Android Studio 0.8.1
- ¿Es obligatorio usar Gradle con Android Studio?
- Error: no se pudo encontrar el destino con la cadena de hash 'android-21'
versionName "1.4.0."+buildNumber
Normalmente, Jenkins llamará a esta generación de Gradle y proporcionará la variable de entorno BUILD_NUMBER.
Si ejecuto la construcción de Gradle desde mi línea de comandos, sé que puedo establecer BUILD_NUMBER = x.
Sin embargo, si construyo utilizando Android Studio, ¿cómo puedo configurar la variable de entorno BUILD_NUMBER a través de Android Studio?
- NoSuchMethodError si estoy usando okhttp 2.0 y la última actualización?
- Gradle no puede resolver dependencias en Android Studio
- app: transformClassesWithJarMergingForDebug '. TransformException: java.util.zip.ZipException: entrada duplicada mientras se ejecuta gradlew assembleDebug
- Crear una biblioteca con dependencias en android
- Cómo convertir un proyecto de gradle en un proyecto de android
- Estudio de Android que carga el apk antiguo al cambiar project.archivesBaseName
- Excluir recursos predefinidos en el archivo apk
- Error de compilación de Android Studio: la constante de enumeración INSTANT_RUN_REPLACEMENT no existe en la clase
Una opción es hacer uso de las propiedades gradle que pueden ser invalidadas por las variables de entorno. Puedes leer sobre esto aquí .
Si el nombre de la variable de entorno parece ORG_GRADLE_PROJECT _ prop = somevalue, Gradle establecerá una propiedad prop en su objeto de proyecto, con el valor de somevalue.
Lo que esto significa es que usted puede
-
BUILD_NUMBER=42
en su archivo.properties
(proyecto, o global) como lo haría normalmente, - Y en su CI nombraría la variable de entorno
ORG_GRADLE_PROJECT_BUILD_NUMBER
, sobrescribiendo o estableciendoBUILD_NUMBER
en su compilación de CI.
Nota: Utilice gradle.properties
en el directorio raíz del proyecto y no modifique local.properties
.
Terminé usando el siguiente en mi build.gradle:
def buildNumber = System.getenv("BUILD_NUMBER") if (buildNumber == null) { Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) buildNumber = properties.getProperty('buildNumber')?:"NoBuildNumberFound" }
Debido a que el archivo local.properties no se supone que está asignado a su repositorio de código fuente, cada desarrollador administra su propia copia.
Así que si quieren establecer el buildNumber en su Android Studio local, simplemente agregue lo siguiente a su local.properties:
buildNumber=7
Así que en una máquina de desarrolladores locales, el número de compilación se establecerá en lo que se ponga en su archivo local.properties, pero en nuestro servidor Jenkins, utilizará la variable de entorno BUILD_NUMBER
Nuestro servidor Jenkins establece la variable de entorno BUILD_NUMBER
Estas son sólo variables de entorno.
Si en Windows, vaya al panel de control del sistema operativo y escriba "environment" en el cuadro de búsqueda en la parte superior derecha. A continuación, haga clic en "Editar variables de entorno para su cuenta", altamente amigable y sin derechos de administrador. Reinicie el Android Studio después de la edición.
Si bajo Linux, edite .bashrc en su carpeta de inicio ( vi ~/.bashrc
o con algún otro editor). Aquí se pueden establecer variables de entorno. source ~/.bashrc
(o cierre sesión / inicio de sesión) y reinicie el Android Studio después de la edición.
- Prueba de la función de suscripción de facturación integrada en la aplicación
- Implementación adecuada de MVVM en Android