2017-01-25 1 views
17

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

enter image description here

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

ответ

36

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

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

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

Первая пуля упоминается везде в Интернете, но это было первое упоминание о втором месте поиска дубликатов. Спасибо. –

+0

Эта ошибка возникает, когда вы пытаетесь импортировать один и тот же пакет дважды в файл MainApplication.java. –

+0

это работает, но каждый раз я связываю библиотеку, в которой она повторяется. –

2

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

+0

Существует ни пакет, ни даже переменный по имени AirMapModule в файл MailApplication.java :( – Utkarsh

+0

, что версия native-native вы используете? –

+0

react-native-cli: 2.0.1 response-native: 0.36.0 – Utkarsh

11

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

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

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

Успехов

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

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

+0

Не работает для меня – fungusanthrax

Смежные вопросы