Estoy usando Gradle para crear mi aplicación de Android. Estoy tratando de usar algunos indicadores basados en el tipo de compilación (lanzamiento o depuración).
Mi archivo Gradle se ve así:
android {
buildTypes {
debug {
buildConfigField 'boolean', 'PREPROD', 'true'
buildConfigField 'boolean', 'STAGING', 'false'
}
release {
buildConfigField 'boolean', 'PREPROD', 'false'
buildConfigField 'boolean', 'STAGING', 'false'
}
}
}
Y si intento llamar BuildConfig.PREPROD
o BuildConfig.STAGING
recibo el error "No se puede resolver el símbolo". La sincronización de Gradle fue exitosa, así que no sé si olvidé algunos pasos para poder usar esta función.
El BuildConfig.java
archivo generado es el siguiente (en build/source/buildConfig/debug/com.example.myapp
):
package com.example.myapp;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String PACKAGE_NAME = "com.example.myapp";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 400;
public static final String VERSION_NAME = "";
}
android
gradle
buildconfig
Gaëtan
fuente
fuente
build/source/buildconfig/debug/...
BuildConfig.java
a mi pregunta.Respuestas:
Asegúrese de que su archivo esté importando la clase BuildConfig correcta . A veces, si tiene otras bibliotecas o módulos del proyecto, puede importar el buildConfig incorrecto. Asegúrese de que su importación sea así com.project.app.BuildConfig . Estaba teniendo el mismo problema y el problema era este, espero que pueda ayudar a alguien.
fuente
Estaba teniendo el mismo error. Intente hacer clic en sincronizar , en el lado derecho de guardar . Haz eso después de la sincronización de Gradle .
fuente
Me pasó porque no declaré un campo String correctamente.
Olvidé a los personajes que se escapaban. Cambio de:
buildConfigField "String", "FOO", "foo"
a
buildConfigField "String", "FOO", "\"foo\""
resuelve el problema.
fuente
Los cambios en los archivos de compilación de Gradle no actualizan la generación de la clase BuildConfig, incluso si hace clic en la barra amarilla "sincronizar ahora" en la parte superior. Una limpieza completa forzará la generación de este archivo.
En Android Studio: Construir -> Proyecto limpio
fuente
Asegúrese de agregar su parámetro también a defaultConfig. Probablemente esté ejecutando el buildVarient predeterminado mientras su parámetro está definido en un buildVariant específico.
en el archivo build gradle use esto:
Luego, en el código usa esto:
Espero que esto ayude, MA :)
fuente
Lo mismo me pasó a mí, solucionado al ejecutar esto en la raíz del proyecto:
fuente
Primero debe elegir la variante de compilación deseada para poder acceder a su buildConfigField
fuente
Si ocurre este tipo de problema, simplemente limpie y reconstruya su proyecto.
Gracias.
fuente
Este mismo problema me ha estado volviendo loco durante más de una semana. En mi caso, fue una simple importación que faltaba. Lo busqué, pero de alguna manera en ningún lugar de los documentos que pude encontrar, ¡menciona que necesita importar la clase BuildConfig en cualquier lugar! Y sin embargo, es lógico. Seguí creyendo que podría ser automático. Bueno, no lo es.
Así que intente:
BuildConfig.
parte del código que causa el error. Debería aparecer un mensaje de ayuda en una burbuja azul que diga algo como: "? uk.co.package.app.BuildConfig? Alt + ENTER
" Haga clic en él y Android Studio agregará automáticamente la importación que falta. oimport uk.co.package.app.BuildConfig;
en algún lugar de la lista de sus importaciones.reconstruir ... funciona! bueno, me sirvió de todos modos.
¡Espero que ayude a otro novato de Android Gradle como yo!
fuente
En Android Studio, haga clic en Construir y luego en Limpiar proyecto. Después de limpiar, haga clic en Reconstruir proyecto. - Cuando termine, cierre su proyecto. - Abra su proyecto nuevamente y ejecútelo, el error no debería aparecer nuevamente, se ha borrado.
fuente
En mi caso, el problema era que acababa de cambiar el nombre de un módulo de mi proyecto, pero las referencias del nombre de ese módulo no se actualizaron automáticamente en el
AndroidManifest.xml
.Cambiarles el nombre manualmente y reconstruir el proyecto resolvió el problema.
fuente
Busque apariciones de BuildConfig. ¡Tuve una importación deshonesta de BuildConfig inexistente y el compilador en lugar de capturar eso que apuntaba a una línea aleatoria de código en otro lugar!
fuente
En mi caso, en Android Studio:
fuente
Mi paquete no estaba actualizado en mi manifiesto. Revisé el archivo AndroidManifest.xml y corregí el nombre de mi paquete. Así es como resolví este problema.
fuente
Mis 2 centavos:
Tenía un
import xxx.BuildConfig
AS correcto que apuntaba a esa línea y a esas líneas donde teníaBuildConfig.SOME_VARIABLE
, así que eliminé laimport
línea, la reconstruí, recibí un error que decía esoBuildConfig is unrecognised reference blah blah
y después de eso la importé y la reconstruí nuevamente.fuente
Encontré el mismo error durante la compilación (depuración) del proyecto anterior en Android Studio. Cuando investigué el error, encontré que la clase BuildConfig estaba definida en 2 archivos. El primero fue en BuildConfig.java y el segundo en BuildConfig2.java.
Quité el de archivo y funcioné correctamente.
fuente
En mi caso, cometí un error estúpido al COPIAR Y PEGAR LA MISMA VARIANTE. Acabo de cambiar el nombre de la otra variante y funcionó.
fuente
Posible solución: si está utilizando la biblioteca de facturación de Android X , quizás agregue la siguiente línea en su
build.gradle
archivo:implementation 'com.android.billingclient:billing:2.2.0'
Tenga en cuenta que la biblioteca de facturación de Android TAMBIÉN incluye su propia
BuildConfig
clase que puede confundir al editor de código de Android Studio. Si esto sucede, puede agregar automáticamente la siguienteimport
declaración a una de sus clases:import com.android.billingclient.BuildConfig;
Ese no es el que quieres usar, ¿verdad? El que desea usar (si estuviera haciendo una compilación de depuración) podría estar aquí:
./build/generated/source/buildConfig/debug/com/example/myapp/BuildConfig.java
Entonces, para solucionarlo, elimine esa línea de declaración de importación y reconstruya para ver si se puede resolver a la derecha
BuildConfig.java
. Si no puede, es posible que deba nombrarlo explícitamente mediante unimport com.example.myapp.BuildConfig.java
para que quede muy claro que desea la versión de este archivo de su paquete y no cualquier otro.¡Espero que esto ayude!
fuente
Use esto para Android X
import androidx.multidex.BuildConfig;
es trabajo para mi.
fuente
Reconstruya su módulo haciendo clic derecho en su módulo y seleccione el
Rebuild Module 'module name'
o use la tecla corta: Ctrl+ Shift+F9
fuente