首页 > 解决方案 > 正确的 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"

我尝试了一个解决方案,我更改了jsFileSlugin的相对路径node_modules/react-native-threads/.../RNThreadModule.java。但这并没有改变结果。

我得到错误的方法是听 logcat。

提前致谢。

标签: androidreact-nativeapkvisual-studio-app-center

解决方案


推荐阅读