CLJSRN Release Build Runtime Failure - PullRequest
       16

CLJSRN Release Build Runtime Failure

0 голосов
/ 27 ноября 2018

Я унаследовал эту исходную кодовую базу CLJS React и пытаюсь обновить Android SDK до v26 с React 16.4 и RN 0.56.Отладочная сборка прекрасно работает, но сборка выпуска завершается неудачно при запуске со следующим стеком вызовов:

2018-11-21 10:31:30.731 16727-16790/? E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
Process: XXX, PID: 16727
com.facebook.react.common.JavascriptException: Can't find variable: a, stack:
<unknown>@12:60553
<unknown>@12:60366
<unknown>@12:518500
c@2:822
i@2:394
t@2:324
global code@322:8
    at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:54)
    at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:38)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
    at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:160)
    at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
    at android.os.Looper.loop(Looper.java:193)
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192)
    at java.lang.Thread.run(Thread.java:764)

Есть идеи о том, как получить неминифицированную версию стека вызовов?Минификация выполняется компилятором cljs to js?Или пакет / упаковщик RN?

В настоящее время я использую расширенную оптимизацию компилятора cljs to js.Если я переключаю его на оптимизацию пробелов, то получаю ошибку сборки

transform[stderr]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Я могу обойти ее, выполняя связывание отдельно

node --expose-gc --max_old_space_size=4096 ./node_modules/react-native/local-cli/cli.js bundle --verbose --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output /usr/src/app/android/app/build/intermediates/assets/release/index.android.bundle --assets-dest /usr/src/app/android/app/build/intermediates/res/merged/release

Но я сталкиваюсь с другим сбоем

Unable to load script from assets 'index.android.bundle'.

Есть идеи, что еще я могу попробовать?

Обновление 1: «Невозможно загрузить скрипт из ресурсов index.android.bundle».сообщение об ошибке было вызвано тем, что файл index.android.bundle был помещен в неправильную папку.Сработала следующая команда:

node --expose-gc --max_old_space_size=4096 ./node_modules/react-native/local-cli/cli.js bundle --verbose --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output /usr/src/app/android/app/src/main/assets/index.android.bundle --assets-dest /usr/src/app/android/app/src/main/res/

Неинициализированный стек вызовов выглядит так:

2018-11-27 15:07:00.740 23765-23859/? E/ReactNativeJNI: Got JS Exception: Can't find variable: document (index.android.bundle:1632)
2018-11-27 15:07:00.740 23765-23859/? E/ReactNativeJNI: Got JS Stack: index.android.bundle:1632:43
loadModuleImplementation@index.android.bundle:162:14
guardedLoadModule@index.android.bundle:83:47
metroRequire@index.android.bundle:72:79
global code@index.android.bundle:1639:8
2018-11-27 15:07:00.749 23765-23859/? E/AndroidRuntime: FATAL EXCEPTION: mqt_js
Process: XXX, PID: 23765
java.lang.RuntimeException: com.facebook.react.devsupport.JSException: Can't find variable: document (index.android.bundle:1632)
    at com.facebook.react.bridge.DefaultNativeModuleCallExceptionHandler.handleException(DefaultNativeModuleCallExceptionHandler.java:22)
    at com.facebook.react.devsupport.DisabledDevSupportManager.handleException(DisabledDevSupportManager.java:170)
    at com.facebook.react.bridge.CatalystInstanceImpl.onNativeException(CatalystInstanceImpl.java:525)
    at com.facebook.react.bridge.CatalystInstanceImpl.access$1000(CatalystInstanceImpl.java:39)
    at com.facebook.react.bridge.CatalystInstanceImpl$NativeExceptionHandler.handleException(CatalystInstanceImpl.java:541)
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
    at android.os.Looper.loop(Looper.java:193)
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192)
    at java.lang.Thread.run(Thread.java:764)
 Caused by: com.facebook.react.devsupport.JSException: Can't find variable: document (index.android.bundle:1632)
    at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
    at android.os.Looper.loop(Looper.java:193) 
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192) 
    at java.lang.Thread.run(Thread.java:764) 
 Caused by: com.facebook.jni.CppException: Can't find variable: document (index.android.bundle:1632)
    at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) 
    at android.os.Handler.handleCallback(Handler.java:873) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29) 
    at android.os.Looper.loop(Looper.java:193) 
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192) 
    at java.lang.Thread.run(Thread.java:764) 

1 Ответ

0 голосов
/ 04 декабря 2018

APK работал нормально после того, как я перезапустил процесс обновления RN с реактивной реакцией.После обновления произошла другая проблема с нерешенным символом во время выполнения, но это оказалось проблемой с файлом externs, потому что я перешел с устаревшего BackAndroid на BackHandler.

...