Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 神秘的Bug:在导航到另一个React本机视图并返回后,React本机视图被破坏(但没有崩溃)_Android_React Native - Fatal编程技术网

Android 神秘的Bug:在导航到另一个React本机视图并返回后,React本机视图被破坏(但没有崩溃)

Android 神秘的Bug:在导航到另一个React本机视图并返回后,React本机视图被破坏(但没有崩溃),android,react-native,Android,React Native,我在现有的原生Android应用程序中添加了几个React原生视图 当我显示一个视图时,效果很好。在我导航到另一个视图并返回后,第一个视图没有崩溃,而是被破坏,即:不可单击,旋转木马可滚动,但行为异常(不捕捉特定组件) 我在日志中看到可疑警告,但它们不是在视图再次显示时显示的,而是在稍后尝试触摸/交互时显示的: 10-16 11:38:59.890 9618-9618/com.someapp.android W/unknown:ReactNative: Unable to dispatch to

我在现有的原生Android应用程序中添加了几个React原生视图

当我显示一个视图时,效果很好。在我导航到另一个视图并返回后,第一个视图没有崩溃,而是被破坏,即:不可单击,旋转木马可滚动,但行为异常(不捕捉特定组件)

我在日志中看到可疑警告,但它们不是在视图再次显示时显示的,而是在稍后尝试触摸/交互时显示的:

10-16 11:38:59.890 9618-9618/com.someapp.android W/unknown:ReactNative: Unable to dispatch touch to JS as the catalyst instance has not been attached
10-16 11:38:59.891 9618-9618/com.someapp.android W/unknown:ReactNative: Unable to dispatch touch to JS as the catalyst instance has not been attached
10-16 11:38:59.892 9618-9618/com.someapp.android W/unknown:ReactNative: Tried to enqueue runnable on already finished thread: 'js... dropping Runnable.
10-16 11:38:59.906 9618-9618/com.someapp.android W/MessageQueue: Handler (com.facebook.react.bridge.queue.MessageQueueThreadHandler) {edf0718} sending message to a Handler on a dead thread
    java.lang.IllegalStateException: Handler (com.facebook.react.bridge.queue.MessageQueueThreadHandler) {edf0718} sending message to a Handler on a dead thread
        at android.os.MessageQueue.enqueueMessage(MessageQueue.java:543)
        at android.os.Handler.enqueueMessage(Handler.java:643)
        at android.os.Handler.sendMessageAtTime(Handler.java:612)
        at android.os.Handler.sendMessageDelayed(Handler.java:582)
        at android.os.Handler.post(Handler.java:338)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl.runOnQueue(MessageQueueThreadImpl.java:59)
        at com.facebook.react.bridge.ReactContext.runOnJSQueueThread(ReactContext.java:297)
        at com.facebook.react.uimanager.events.EventDispatcher$ScheduleDispatchFrameCallback.doFrame(EventDispatcher.java:285)
        at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:134)
        at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:105)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:925)
        at android.view.Choreographer.doCallbacks(Choreographer.java:702)
        at android.view.Choreographer.doFrame(Choreographer.java:635)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6682)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
10-16 11:38:59.907 9618-9618/com.someapp.android W/unknown:ReactNative: Unable to dispatch touch to JS as the catalyst instance has not been attached
10-16 11:38:59.929 9618-9618/com.someapp.android W/unknown:ReactNative: Unable to dispatch touch to JS as the catalyst instance has not been attached
10-16 11:38:59.940 9618-9618/com.someapp.android W/unknown:ReactNative: Unable to dispatch touch to JS as the catalyst instance has not been attached
视图通过react原生android片段(v1.0.0)实现为片段


有人有类似的问题吗?关于如何追踪这一点有什么建议吗?

实际上,这似乎是react原生android片段及其使用的问题

情景:

  • 例如,在选项卡视图上创建两个片段A和B
  • A可见(恢复),B隐藏(暂停)
  • 隐藏片段A,显示片段B
  • 销毁片段B,onDestroy清除ReactNativeHost(reactInstanceMgr.getLifecycleState()在\u RESUME之前返回):
  • 再次显示一个back,尝试与它交互
  • 这将导致以下警告:

    10-16 11:38:59.891 9618-9618/com.someapp.android W/unknown:ReactNative: Unable to dispatch touch to JS as the catalyst instance has not been attached
    10-16 11:38:59.892 9618-9618/com.someapp.android W/unknown:ReactNative: Tried to enqueue runnable on already finished thread: 'js... dropping Runnable.
    10-16 11:38:59.906 9618-9618/com.someapp.android W/MessageQueue: Handler (com.facebook.react.bridge.queue.MessageQueueThreadHandler) {edf0718} sending message to a Handler on a dead thread
        java.lang.IllegalStateException: Handler (com.facebook.react.bridge.queue.MessageQueueThreadHandler) {edf0718} sending message to a Handler on a dead thread
            at android.os.MessageQueue.enqueueMessage(MessageQueue.java:543)
    ...
    

    此处发布问题:

    发布代码将有助于找出问题所在。