Hoe canOverrideExistingModule=true instellen in React Native voor Android-apps?

Ik heb een Android-app gebouwd met React Native, deze is met succes gebouwd, maar wanneer ik de app op mijn virtuele Android-apparaat uitvoer, verschijnt er een volledig rood scherm met de volgende fout:

voer hier de afbeeldingsbeschrijving in

Ik heb nog nooit native app-ontwikkeling gedaan en ik heb ook geen kennis van Java, dus ik heb geen idee wat deze fout betekent en hoe ik dit kan oplossen.


Antwoord 1, autoriteit 100%

De naam van het pakket dat aan deze fout is gekoppeld, is niet AirMapModulemaar MapsPackagevan com.airbnb.android.react.maps.

In uw MainApplication.javain directory : android/app/src/main/java/../../verwijder alle dubbele vermeldingen van:

  • het importpakket: import com.airbnb.android.react.maps.MapsPackage
  • de aanroep van de constructor van de module: new MapsPackage()in functie getPackages

Antwoord 2, autoriteit 38%

Ga naar bestand “MainApplication.java” (onder .\android\app\src\main\java\com\projectName\)

Zorg ervoor dat u onder de functie getPackages()geen dubbele regels hebt (in mijn geval had ik tweemaal “new MapsPackage()”).

Ook dubbele importen oplossen.


Antwoord 3, autoriteit 18%

Open het bestand MainApplication.javaop dit adres: android/app/src/main/java/com/projectName/MainApplication.javaen voeg de volgende code toe aan het bestand MainApplication.java:

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

En alles werd correct.


Antwoord 4, autoriteit 13%

Ga naar het MainAplication-bestand.

Verwijder duplicaat pakket en verwijder duplicaat pakket in getPackages()methode

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

Probeer daarna dit commando in je terminal:

  • cd android
  • ./gradlew clean

Antwoord 5, autoriteit 10%

Als de versie van RN die u gebruikt >= 0,60 is, bestaat de mogelijkheid dat automatisch koppelen en uw handmatige koppeling twee keer hetzelfde doen. Je hebt twee opties:

1- U kunt codewijzigingen ongedaan maken met de methode getPackages
2- U kunt automatisch koppelen uitschakelen in het bestand react-native-config.js.


6, Autoriteit 2%

U kunt inchecken in bestand proberen MainApplication.javain map: android\app\src\main\javais een dubbele pakket airmapmodule bestaat of niet, en niet te verwijderen 1 indien nodig.


7

Indien geïnstalleerde bibliotheek reageert-navigatie U kunt via Android Studio uitvoeren.
Verwijder anders bibliotheek reageren-navigatie en gewoon garen is het zal werken.

Other episodes