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óngetPackages
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