android - 正确的 React Native Threads 捆绑发布
问题描述
我正在研究一个使用react-native-threads
. 在我创建签名发布 APK 之前,一切正常。如果我运行react-native run-android
或创建签名的调试 APK,应用程序将按预期工作。但是,当生成发布 APK 时,在运行应用程序时会生成以下错误:
E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
Process: com.mav3rik.parks, PID: 32745
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'threads/index.thread.bundle' is packaged correctly for release.
at com.facebook.react.bridge.DefaultNativeModuleCallExceptionHandler.handleException(DefaultNativeModuleCallExceptionHandler.java:22)
at com.facebook.react.devsupport.DisabledDevSupportManager.handleException(DisabledDevSupportManager.java:170)
at com.reactlibrary.RNThreadModule.startThread(RNThreadModule.java:98)
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:158)
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$4.run(MessageQueueThreadImpl.java:232)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'threads/index.thread.bundle' is packaged correctly for release.
at com.facebook.react.common.futures.SimpleSettableFuture.get(SimpleSettableFuture.java:66)
at com.reactlibrary.ReactContextBuilder.build(ReactContextBuilder.java:103)
at com.reactlibrary.JSThread.runFromContext(JSThread.java:32)
at com.reactlibrary.RNThreadModule.startThread(RNThreadModule.java:90)
如果需要,可以提供更多错误。
要考虑的事情,这是一个 Salesforce React Native 应用程序,它还利用 Appcenter/CodePush。
从react-native info
React Native Environment Info:
System:
OS: macOS 10.14.6
CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Memory: 68.65 MB / 16.00 GB
Shell: 5.3 - /bin/zsh
Binaries:
Node: 10.16.3 - /usr/local/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm
SDKs:
iOS SDK:
Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.6010548
Xcode: 10.3/10G8 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.3 => 16.8.3
react-native: 0.59.9 => 0.59.9
从package.json
"appcenter": "^2.1.0"
"react-native-code-push": "^5.6.1"
我尝试了一个解决方案,我更改了jsFileSlug
in的相对路径node_modules/react-native-threads/.../RNThreadModule.java
。但这并没有改变结果。
我得到错误的方法是听 logcat。
提前致谢。
解决方案
推荐阅读
- c# - 对引发意外异常的 ContentTypeCollection 对象的操作
- ios - 如何从 Widget 中的 ForEach 获取随机核心数据元素
- java - 如何在 Springboot 中使用 javax.ejb.TimerService
- reactjs - 反应受控与不受控制的输入形式
- sql - 查询返回空记录
- javascript - 为什么我从 React lib useSpring 中获取空返回值?
- google-sheets - 在 Google Sheets 'IF' 公式中使用多个 'OR' 语句,并带有 #ERROR 的连续范围
- css - 为什么文本容器和父容器一样长,而不是内部文本?
- sql - 我想在 SQL 中选择或查看特定数据
- python-3.x - 如何填充已识别的轮廓?