Could not get BatchedBridge, make sure your bundle is packaged correctly

最近在原生Android项目中集成React Native环境时,频繁出现 com.facebook.react.devsupport.JSException: Could not get BatchedBridge, make sure your bundle is packaged correctly的错误,详细报错信息如下:

10-18 09:42:47.280 18014-18014/com.wwy.jichengrnapplication E/MemoryLeakMonitorManager: MemoryLeakMonitor.jar is not exist!
10-18 09:42:47.283 18014-18014/com.wwy.jichengrnapplication E/Minikin: Could not get cmap table size!
10-18 09:42:47.394 18014-18034/com.wwy.jichengrnapplication E/iGraphicsGLIntercept: failed to load file: /product/etc/xml/igraphics_config_cust.xml
10-18 09:42:48.589 18014-18063/com.wwy.jichengrnapplication E/unknown:React: Exception in native call from JS
    com.facebook.react.devsupport.JSException: Could not get BatchedBridge, make sure your bundle is packaged correctly
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
        at android.os.Looper.loop(Looper.java:166)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196)
        at java.lang.Thread.run(Thread.java:784)
     Caused by: com.facebook.jni.CppException: Could not get BatchedBridge, make sure your bundle is packaged correctly
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) 
        at android.os.Handler.handleCallback(Handler.java:808) 
        at android.os.Handler.dispatchMessage(Handler.java:101) 
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31) 
        at android.os.Looper.loop(Looper.java:166) 
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196) 
        at java.lang.Thread.run(Thread.java:784) 
10-18 09:42:48.602 18014-18063/com.wwy.jichengrnapplication E/unknown:React: Exception in native call
    java.lang.RuntimeException: Error calling function: RCTDeviceEventEmitter:emit
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
        at android.os.Looper.loop(Looper.java:166)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196)
        at java.lang.Thread.run(Thread.java:784)
     Caused by: java.lang.RuntimeException: Empty Optional cannot be unwrapped
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) 
        at android.os.Handler.handleCallback(Handler.java:808) 
        at android.os.Handler.dispatchMessage(Handler.java:101) 
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31) 
        at android.os.Looper.loop(Looper.java:166) 
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196) 
        at java.lang.Thread.run(Thread.java:784) 
10-18 09:42:48.607 18014-18063/com.wwy.jichengrnapplication E/unknown:React: Exception in native call
    java.lang.RuntimeException: Error calling function: AppRegistry:runApplication
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
        at android.os.Looper.loop(Looper.java:166)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196)
        at java.lang.Thread.run(Thread.java:784)
     Caused by: java.lang.RuntimeException: Empty Optional cannot be unwrapped
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) 
        at android.os.Handler.handleCallback(Handler.java:808) 
        at android.os.Handler.dispatchMessage(Handler.java:101) 
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31) 
        at android.os.Looper.loop(Looper.java:166) 
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196) 
        at java.lang.Thread.run(Thread.java:784) 
10-18 09:42:48.659 18014-18014/com.wwy.jichengrnapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.wwy.jichengrnapplication, PID: 18014
    android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@de3eca0 -- permission denied for window type 2003
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:908)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:372)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:128)
        at android.app.Dialog.show(Dialog.java:454)
        at com.facebook.react.devsupport.DevSupportManagerImpl$4.run(DevSupportManagerImpl.java:332)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7425)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

经检查我的package.json和index.android.js文件均没有语法错误,然后也确认我index.android.js、package.json、RNactivity文件中的getMainComponentName方法返回的那个值三者一致。然而并无卵用,跳转到RN页面后仍然是全白页面或者这样的红色页面,双击R键也没用,重新启动应用也没用。

最后我进入到项目根目录下cmd命令执行 npm start 开启react-native的package,参照下图执行:

待package如上图启动成功后点击进入RN界面,开启在APP上层显示权限,再回到app中仍然无效。

最后看到一篇文章说需要生成本地bundle文件,解决办法是:

在当前工程根目录下打开cmd执行:
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

注意根据各自工程名字可能有不同程序的修改,
注意如果工程没有/android/app/src/main/assets文件,需要先创建。

如上图信息则成功生成了如下的两个bundle文件

这样就完美解决了,重新运行应用,就正确进入了RN页面了。

猜你喜欢

转载自blog.csdn.net/Wang_WY/article/details/83141981
今日推荐