J'ai construit une application Android avec React Native, elle a été construite avec succès, mais lorsque je lance l'application dans mon Android Virtual Appareil, il affiche un plein écran rouge avec l'erreur suivante:
Je n'ai jamais réalisé de développement d'applications natives et je n'ai aucune connaissance de Java), donc je ne sais pas ce que cette erreur signifie et comment résoudre ce problème.
Le nom du paquet associé à cette erreur n'est pas AirMapModule
mais MapsPackage
à partir de com.airbnb.Android.react.maps
.
Dans votre MainApplication.Java
Dans le répertoire: Android/app/src/main/Java/../../
, Supprimez toute entrée en double de:
import com.airbnb.Android.react.maps.MapsPackage
new MapsPackage()
dans fonction getPackages
Accédez au fichier "MainApplication.Java" (sous.\Android\app\src\main\Java\com\nomProjet).
Assurez-vous que, dans la fonction getPackages (), vous n’avez pas de lignes en double (dans mon cas, j’ai eu "new MapsPackage ()" deux fois).
Corrigez également les importations en double.
Bonne chance
Allez dans le fichier MainAplication.
Supprimer le package en double et supprimer le package en double dans la méthode getPackages()
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new VectorIconsPackage()
);
}
Ensuite, après avoir essayé cette commande dans votre terminal:
@Override
public boolean canOverrideExistingModule() {
return true;
}
Ajouter ce code à votre constructeur de module natif serait bien
Vous pouvez essayer d’archiver le fichier MainApplication.Java
dans le répertoire: Android\app\src\main\Java
il existe ou non un package dupliqué AirMapModule, et en supprime 1 le cas échéant.
Si la version de RN que vous utilisez est> = 0.60, il est possible que la liaison automatique et votre liaison manuelle fassent la même chose deux fois. Vous avez deux options:
1- Vous pouvez annuler les modifications de code dans la méthode getPackages
2- Vous pouvez désactiver la liaison automatique dans react-native-config.js
fichier.
vérifiez votre MainApplication.Java
, en particulier protected List<ReactPackage> getPackages()
; le AirMapModule
est probablement deux fois dans la liste