React Native Android Build Error MainActivity.java:29: error: no se puede encontrar el símbolo

82

Recibo este error al intentar compilar mi aplicación de Android React Native. La aplicación de Android no puede resolver BuildConfig.DEBUG.

:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJavaWithJavac
/Users/amirsharif/mobile-rappad/android/app/src/main/java/com/rappadmobile/MainActivity.java:29: error: cannot find symbol
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                                        ^
  symbol:   variable BuildConfig
  location: class MainActivity
>1 error
:app:compileDebugJavaWithJavac FAILED

Puedo resolverlo temporalmente simplemente configurándolo en verdadero. Esto podría haber sucedido después de que cambié el nombre de una aplicación (ya que eso es algo que también he intentado hacer).

Probablemente tenga que cambiar algo con Gradle para que vuelva a generar el tipo correcto de archivos.

/**
 * Automatically generated file. DO NOT MODIFY
 */
package com.app;

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.rappadmobile";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
}
Sobrecarga119
fuente

Respuestas:

113

Tuve el mismo problema y se resolvió simplemente agregando la siguiente declaración de importación en MainApplication.java:

import com.facebook.react.BuildConfig;
Manoj Goel
fuente
Trabajos. Gracias. Mi error fue: error: no se puede encontrar el símbolo return BuildConfig.DEBUG; // ------ Esto se hace referencia en el código sin importar. ^ símbolo: variable BuildConfig
MPV
1
¡Trabajado como un encanto! :)
AndrewHenderson
Esto funcionó, pero por qué tuve que agregarlo manualmente es un misterio. : encogimiento de hombros:
Mike S.
Tienes mi tiempo. ¡¡Muchas gracias!!
Anilkumar iOS - ReactNative
2
Una advertencia, hacer esto en react-native podría hacer que la aplicación se bloquee. github.com/wix/react-native-navigation/issues/…
analfabeto
81

La forma en que Android sabe dónde encontrar ciertos archivos y cómo conectar ciertos archivos es mediante el uso de campos establecidos en AndroidManifest.xml. Dado que la configuración predeterminada de un proyecto React Native hace referencia a todo con. (Nombre del recurso), esto significa que todo se resolverá con respecto al nombre del paquete establecido en la <manifest>etiqueta. Entonces, para que todo funcione de inmediato y todo se genere como se espera, la ruta a MainActivity.java debe ser la misma que el nombre del paquete.

ejemplo:

el nombre del paquete de su aplicación: com.mycompanyname.myappname

ubicación de MainActivity.java: android/app/src/main/java/com/mycompanyname/myappname/MainActivity.java

gorjanz
fuente
5
El nombre del paquete "com.mycompany.myapp" distingue entre mayúsculas y minúsculas. También debe cambiar applicationId en su /android/app/build.gradle
Ed of the Mountain
1
Fue exactamente mi problema, gracias. Intenté cambiar el nombre de la aplicación y terminé con nombres diferentes en algunos lugares. Tuve que asegurarme de que el nombre de la aplicación sea similar y todo en minúsculas en la carpeta del sistema de archivos, en app / build.gradle applicationId, en el atributo "paquete" AndroidManifex.xml y en las importaciones de paquetes en MainActivity.java y MainApplication.java - la construcción pasó después de eso.
Alexey Grinko
41

Reconstruí el proyecto con react-native upgrade. Mi problema fue entonces que tenía archivos antiguos que hacían referencia a los nombres de paquetes antiguos (porque cambié el nombre de la aplicación package.json). Una vez que los eliminé, resolví el problema.

Sobrecarga119
fuente
Muchas gracias! Pasé días tratando de resolver esto.
David B.
Los directorios con el antiguo AppName que necesitaba eliminar se pueden encontrar en ./android/app/src/main/java/com ..and ./ios
remo
Funcionó
34

En su MainActivity.java, puede comprobar que la primera línea espackage com.YOU_APP_NAME;

Si esta línea no existe, debe agregarla.

Rom1
fuente
¡Traté de cambiar el nombre de mi paquete y esto fue lo último que olvidé! Thnx!
Mats de Swart
3
Solo como referencia: también necesitaba cambiar el nombre del paquete en MainApplication.java.
Bardu
15

En mi caso, cambié el nombre del paquete tanto en el archivo BUCK como en el archivo Manifest.

En el archivo BUCK, cambie de la siguiente manera.

android_build_config(
    name = "build_config",
    package = "NEW_PACKAGE_NAME",
)

android_resource(
    name = "res",
    package = "NEW_PACKAGE_NAME",
    res = "src/main/res", )
rakeshNS
fuente
1
Resolví mi caso haciendo esto + cambiando el nombre de los paquetes en todos y cada uno de los archivos Java en mi proyecto
Antoine Auffray
13

Una combinación de algunas respuestas me ayudó, resumen:

  • Asegúrese de que los nombres de los paquetes de Java sean correctos ( MainApplication.javaetc.)
  • actualice el nombre del paquete en el archivo de compilación de Gradle
  • actualizar el nombre del paquete en el archivo de manifiesto
  • actualizar el nombre del paquete en el BUCKarchivo
  • asegúrese de que la ruta a sus fuentes de JavaScript sea una estructura de carpetas que coincida con el nombre de su paquete
WiRa
fuente
El primer punto "Asegúrese de que los nombres de los paquetes de JavaScript sean correctos": ¿estamos hablando de package.jsony qué quiere decir con "conectar"?
Norfeldt
Esto ya fue hace un tiempo ... pero con los nombres de los paquetes me refiero a las primeras líneas en los archivos java que son algo así como 'paquete com.yourname.yourproject'
WiRa
6

La actualización de react-native resolvió este error:

react-native upgrade

Ahora construye de nuevo -

react-native run-android
Tamandeep Singh
fuente
Gran sugerencia, aunque elimina algunas modificaciones de ciertos archivos. Tuve que ejecutar de react-native linknuevo después para volver a vincular las dependencias nativas.
Eliot
5

Si cambió el nombre de su, bundle identifieres probable que deba cambiar:

Tu android/app/src/main/....../MainApplication.java paquete e importaciones .

Aunque react-native-rename usé el paquete npm , no se encargó de algunos archivos MainApplication.javay MainActivity.java.

de indefinido
fuente
1
gracias hermano, salvaste el día ny
Arslan Bajwa
3

Elimine los archivos antiguos que podrían estar allí en android / app / src / main / java / com Simplemente conserve el archivo con el nuevo nombre de la aplicación. Entonces hazlo react-native upgrade.

Ankur Kedia
fuente
0

Compruebe si se ha perdido la instalación de react-native-gest-handler.

con hilo

hilo añadir react-native-gestor-handler

o con npm

npm install --save react-native-gesto-handler

Entonces

react-native link react-native-gesto-handler

Nadeeshan Herath
fuente
0

Experimenté esto mientras seguía https://dev.to/karanpratapsingh/quick-guide-for-updating-package-name-in-react-native-3ei3 . Estaba cambiando el nombre de mi aplicación de com.company_appa com.mycompany.myapp, aparentemente, había algunos archivos que todavía necesitaba actualizar pero no estaban incluidos en la guía que estaba siguiendo, creo que la guía es solo para general, como una nueva aplicación nativa de reacción, resolví esto haciendo una búsqueda global com.company_appy simplemente reemplazando cada uno com.mycompany.myappcuando tenga sentido.

abrilmintacpineda
fuente