Comment définir canOverrideExistingModule=true dans React Native pour les applications Android?

j'ai construit une application android en utilisant React Native, il a été construit avec succès, mais quand je lance l'application dans mon appareil virtuel Android il apparaît un écran rouge complet avec l'erreur suivante:

enter image description here

je n'ai pas fait application native de développement jamais je n'ai aucune connaissance de Java donc je n'ai aucune idée de ce que cette erreur signifie et comment résoudre ce problème.

35
demandé sur UtkarshPramodGupta 2017-01-25 11:14:31

5 réponses

Le nom du paquet associé à cette erreur n'est pas AirMapModule mais MapsPackagecom.airbnb.android.react.maps.

Dans votre MainApplication.java dans l'annuaire:android/app/src/main/java/../../ supprimer toute entrée en double de :

  • l'importation du package : import com.airbnb.android.react.maps.MapsPackage
  • l'appel au constructeur du module : new MapsPackage() dans la fonction getPackages
77
répondu efx 2017-03-19 09:51:03

aller au fichier " MainApplication.java" (en vertu de l' .\ android\app\src\main\java\com\projectName)

assurez-vous que sous la fonction getPackages() vous n'avez pas de lignes dupliquées (dans mon cas j'ai eu "New MapsPackage()" deux fois).

Fix double des importations.

Bonne chance

29
répondu Barak Kakoun 2017-04-07 23:51:08
  @Override    
  public boolean canOverrideExistingModule() {        
    return true;    
  }   

ajouter ce code à votre constructeur de module natif serait très bien

4
répondu Andrew Fan 2017-07-03 07:10:54

vous pouvez essayer le fichier check in MainApplication.java dans l'annuaire:android\app\src\main\java a un double paquet AirMapModule existe ou non, et supprimer 1 Si A.

2
répondu Nguyên Hoàng 2017-01-25 08:51:04

aller au fichier MainAplication.. Supprimer le paquet dupliqué et supprimer le paquet dupliqué dans la méthode getPackages ()

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

puis après avoir essayé cette commande dans votre terminal:

  • cd android
  • gradlew propre
2
répondu HM Hamza Zubair 2018-05-15 13:49:00