Как установить canOverrideExistingModule = true в React Native для приложений Android?

Я создал приложение для Android с помощью React Native, оно было успешно создано, но когда я запускаю приложение на моем виртуальном устройстве Android, оно отображает полный красный экран со следующей ошибкой:

enter image description here

Я никогда не занимался разработкой собственных приложений и не имею никаких знаний о Java, поэтому понятия не имею, что означает эта ошибка и как ее исправить.

Ответ 1

Имя пакета, связанного с этой ошибкой, не AirMapModule, а MapsPackage от com.airbnb.android.react.maps.

В вашем MainApplication.java в каталоге: android/app/src/main/java/../../ удалите любую повторяющуюся запись:

  • пакет импорта: import com.airbnb.android.react.maps.MapsPackage
  • вызов конструктора модуля: new MapsPackage() в функции getPackages

Ответ 2

Перейдите в файл "MainApplication.java" (под.\android\app\src\main\java\com\projectName)

Убедитесь, что в функции getPackages() у вас нет повторяющихся строк (в моем случае у меня было "новое MapsPackage()" дважды).

Исправить дубликаты импорта.

Удачи.

Ответ 3

Перейдите в файл MainAplication.

Удалить дубликат пакета и удалить дубликат пакета в getPackages()

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

Затем попробуйте эту команду в вашем терминале:

  • CD Android
  • ./gradlew clean

Ответ 4

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

Добавить этот код в собственный конструктор модуля будет отлично

Ответ 5

Вы можете попробовать проверить файл MainApplication.java в каталоге: android\app\src\main\java есть какой-либо дублирующий пакет AirMapModule существует или нет, и удалить 1, если есть.

Ответ 6

Если используемая вами версия RN> = 0,60, существует вероятность, что автоматическое связывание и ваше ручное связывание выполняют одно и то же дважды. У вас есть два варианта:

1- Вы можете отменить изменения кода в методе getPackages
2- Вы можете отключить автоматическое связывание в файле react-native-config.js.

Ответ 7

проверьте ваш MainApplication.java, в частности protected List<ReactPackage> getPackages(); AirMapModule, вероятно, дважды в списке

Ответ 8

Если установлена библиотека реагировать на навигацию, вы можете запустить ее через Android Studio. иначе удалите библиотеку реагировать на навигацию и просто работайте.