your start run react for emulator development java android react-native avd android-avd

java - start - react native run android



¿Cómo configurar canOverrideExistingModule=true en React Native para aplicaciones de Android? (8)

Creé una aplicación de Android usando React Native, se compiló con éxito, pero cuando ejecuto la aplicación en mi dispositivo virtual Android, aparece una pantalla roja completa con el siguiente error:

Nunca antes había desarrollado aplicaciones nativas ni tengo conocimiento de Java, así que no tengo idea de qué significa este error y cómo solucionarlo.


El nombre del paquete asociado a este error no es AirMapModule sino MapsPackage de com.airbnb.android.react.maps .

En su MainApplication.java en el directorio: android/app/src/main/java/../../ elimine cualquier entrada duplicada de:

  • el paquete de import com.airbnb.android.react.maps.MapsPackage : import com.airbnb.android.react.maps.MapsPackage
  • la llamada al constructor del módulo: new MapsPackage() en la función getPackages

Puede intentar registrar el archivo MainApplication.java en el directorio: android/app/src/main/java hay algún paquete duplicado AirMapModule existente o no, y elimine 1 si lo tiene.


Si la versión de RN que está usando es> = 0.60, existe la posibilidad de que el enlace automático y el enlace manual estén haciendo lo mismo dos veces. Tienes dos opciones:

1- Puede revertir los cambios de código en el método getPackages
2- Puede deshabilitar el enlace automático en el archivo react-native-config.js .


Vaya al archivo MainAplication .

Eliminar el paquete duplicado y eliminar el paquete duplicado en el método getPackages()

@Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new VectorIconsPackage() ); }

Luego, después de probar este comando en su terminal:

  • cd android
  • ./gradlew clean

Vaya al archivo "MainApplication.java" (en. / Android / app / src / main / java / com / projectName)

Asegúrese de que bajo la función getPackages () no tenga líneas duplicadas (en mi caso, tuve "nuevo MapsPackage ()" dos veces).

Corregir importaciones duplicadas también.

Buena suerte


compruebe su MainApplication.java , en particular la protected List<ReactPackage> getPackages() ; AirMapModule probablemente esté dos veces en la lista


si está instalada la biblioteca react-navigation, puede ejecutarla a través de android studio. de lo contrario, elimine la biblioteca react-navigation y solo hilará, funcionará.


@Override public boolean canOverrideExistingModule() { return true; }

Agregar estos códigos a su constructor de módulos nativo estaría bien