Итак, прежде всего ... запуск на iOS не имеет проблем. Я на

«реагировать»: «16.0.0-бета.5»,

«реактивный»: «^ 0.49.3»,

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

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

Если я перехожу на URL в ошибке, есть страница JS. Приложение также блокирует устройство или эмулятор.

Другая информация:

ADB мой путь, и я могу запускать устройства ADB.

ADB обратный TCP: 8081 TCP: 8081 не помогает

10-19 12:28:20.839: E/unknown:ReactNative(12782): Exception in native call from JS
10-19 12:28:20.839: E/unknown:ReactNative(12782): com.facebook.react.devsupport.JSException: Unexpected token '*' (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:112538)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   at android.os.Handler.handleCallback(Handler.java:751)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   at android.os.Handler.dispatchMessage(Handler.java:95)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   at android.os.Looper.loop(Looper.java:154)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   at java.lang.Thread.run(Thread.java:761)
10-19 12:28:20.839: E/unknown:ReactNative(12782): Caused by: com.facebook.jni.CppException: Unexpected token '*' (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:112538)
10-19 12:28:20.839: E/unknown:ReactNative(12782):   ... 7 more
10-19 12:28:20.841: E/unknown:ReactNative(12782): Exception in native call
10-19 12:28:20.841: E/unknown:ReactNative(12782): java.lang.RuntimeException: Error calling AppRegistry.runApplication
10-19 12:28:20.841: E/unknown:ReactNative(12782):   at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
10-19 12:28:20.841: E/unknown:ReactNative(12782):   at android.os.Handler.handleCallback(Handler.java:751)
10-19 12:28:20.841: E/unknown:ReactNative(12782):   at android.os.Handler.dispatchMessage(Handler.java:95)
10-19 12:28:20.841: E/unknown:ReactNative(12782):   at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
10-19 12:28:20.841: E/unknown:ReactNative(12782):   at android.os.Looper.loop(Looper.java:154)
10-19 12:28:20.841: E/unknown:ReactNative(12782):   at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
10-19 12:28:20.841: E/unknown:ReactNative(12782):   at java.lang.Thread.run(Thread.java:761)
10-19 12:28:20.841: E/unknown:ReactNative(12782): Caused by: com.facebook.jni.CppException: Could not get BatchedBridge, make sure your bundle is packaged correctly
10-19 12:28:20.841: E/unknown:ReactNative(12782):   ... 7 more
2
user602525 19 Окт 2017 в 19:59

3 ответа

Лучший ответ

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

Мой проект использует

Оператор экспонирования **

(Я думаю, что это было введено в ES6).

Как я уже сказал в своем вопросе, это не вызывает никаких проблем при работе на iOS. Я пока недостаточно глубоко копал, но, похоже, в базе кода кода-реактива на стороне Android должна быть ошибка. Может быть, это в Bable? Я не уверен на 100%.

Однако я знаю, что

переход от, например, 2 ** 3 к Math.pow (2,3) решает это для меня.

Обновление на этот ответ:

Я не могу воспроизвести это, создав новый проект RN. Проект, в котором у меня была эта проблема, был обновлен с RN 42, поэтому должна быть проблема с процессом обновления.

4
user602525 22 Окт 2017 в 16:24

ОБНОВЛЕНИЕ: babel-preset-Reaction-native (v5.0.0) теперь поддерживает оператор возведения в степень. package.json предустановки требуется подключаемый модуль спектрально- экспоненцирование - оператор


Это всего лишь вопрос времени, пока babel-preset-реакции-native поддерживает оператор возведения в степень, но сейчас вы можете добавить babel-plugin-transform -exponentiation-operator к вашему проекту вручную.

yarn add babel-plugin-transform-exponentiation-operator --dev

Затем в вашем .babelrc файле убедитесь, что ваше свойство plugins выглядит примерно так:

{
  "plugins": ["transform-exponentiation-operator"]
}
2
Brent Barbata 21 Апр 2018 в 00:56

Если кто-то все еще получил эту ошибку, попробуйте это

** оператор ломает упаковщика

Это решение исправить для меня, я не уверен, что является причиной моей ошибки, хотя. Моя реагирующая версия

«реагировать»: «16.0.0»

«реактивный»: «0.50.4»

Короче говоря,

npm install babel-preset-react-native-stage-0

Затем добавьте эту строку ниже к .babelrc

{
  "presets": ["react-native-stage-0"]
}

Если отреагировать родной уже есть, то это будет

{
  "presets": ["react-native", "react-native-stage-0"]
}
-1
Community 20 Июн 2020 в 09:12