Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Gradle buildConfigField con una variable entera

Quisiera definir una configuración de la estructura archivada donde puedo utilizar una variable definida en el guión del gradle él mismo:

def someVar = 512 android { ... buildConfigField 'int', 'SOME_INT_FIELD', someVar } 

Pero esto produce error siguiente:

Error: (25, 0) Gradle DSL método no encontrado: 'buildConfigField ()'

Posibles causas:

  • El proyecto 'PROJECT' puede estar usando una versión de Gradle que no contenga el método.
  • El archivo de compilación puede estar faltando un complemento Gradle.

  • Puedo usar citas como:

     def someVar = 0 android { ... buildConfigField 'int', 'SOME_INT_FIELD', '"' + someVar + '"' } 

    Pero esto viene a un error de compilador en BuildConfig

     // Fields from default config. public static final int SOME_INT_FILED = "512"; 

    Así que por ahora me quedo con:

     def someVar = 0 android { ... buildConfigField 'String', 'SOME_INT_FIELD', '"' + someVar + '"' } 

    Y utilizarlo como:

     final int value = Integer.valueOf(BuildConfig.SOME_INT_FIELD); 

    ¿Alguien tiene mejor solución o no uso buildConfigField mal?

    (También intenté usar paréntesis en combinación con cualquiera de las posibilidades anteriores.)

  • Pérdida de variables orientaciones de conmutación
  • Ningún campo de instancia
  • ¿Hay alguna manera de comprobar si una variable está definida en Java?
  • ¿Cómo obtengo las preferencias para trabajar en Android?
  • ¿Necesito restaurar todas las variables onResume?
  • Alinear el nombre de las variables en el android studio
  • No se puede ver el contenido de la variable final dentro de la clase anónima al depurar en Eclipse una aplicación para Android
  • ¿WebView saveState () preserva variables / entorno de JavaScript?
  • One Solution collect form web for “Gradle buildConfigField con una variable entera”

    He encontrado una solución, así que tal vez esta respuesta ayudará a alguien en el futuro.

     def String globalVersionCode defaultConfig { applicationId "com.test.gradle.build" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "0.1" globalVersionCode = versionCode } buildTypes { release { buildConfigField ("int", "DatabaseVersion", globalVersionCode) } } 

    Y ahora en java puedo obtener la variable DatabaseVersion:

     public static final int DB_VERSION = BuildConfig.DatabaseVersion; 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.