android – ReactNative中SimpleSettableFuture.java的重复崩溃

在我的React Native Android应用程序的Firebase崩溃报告中反复出现崩溃.但是,由于堆栈跟踪没有引用我的任何代码,因此我不知道会导致什么.有谁知道可能是什么原因?我在React Native 0.47.1上

堆栈跟踪如下:

Exception java.lang.RuntimeException: java.lang.InterruptedException
com.facebook.react.common.futures.SimpleSettableFuture.getOrThrow (SimpleSettableFuture.java:102)
com.facebook.react.bridge.queue.MessageQueueThreadImpl.startNewBackgroundThread (MessageQueueThreadImpl.java:199)
com.facebook.react.bridge.queue.MessageQueueThreadImpl.create (MessageQueueThreadImpl.java:146)
com.facebook.react.bridge.queue.ReactQueueConfigurationImpl.create (ReactQueueConfigurationImpl.java:87)
com.facebook.react.bridge.CatalystInstanceImpl.<init> (CatalystInstanceImpl.java:101)
com.facebook.react.bridge.CatalystInstanceImpl.<init> (CatalystInstanceImpl.java:42)
com.facebook.react.bridge.CatalystInstanceImpl$Builder.build (CatalystInstanceImpl.java:574)
com.facebook.react.ReactInstanceManager.createReactContext (ReactInstanceManager.java:999)
com.facebook.react.ReactInstanceManager.access$600 (ReactInstanceManager.java:109)
com.facebook.react.ReactInstanceManager$4.run (ReactInstanceManager.java:802)
java.lang.Thread.run (Thread.java:761)

Caused by java.lang.InterruptedException:
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly (AbstractQueuedSynchronizer.java:1301)
java.util.concurrent.CountDownLatch.await (CountDownLatch.java:203)
com.facebook.react.common.futures.SimpleSettableFuture.get (SimpleSettableFuture.java:66)
com.facebook.react.common.futures.SimpleSettableFuture.getOrThrow (SimpleSettableFuture.java:100)
com.facebook.react.bridge.queue.MessageQueueThreadImpl.startNewBackgroundThread (MessageQueueThreadImpl.java:199)
com.facebook.react.bridge.queue.MessageQueueThreadImpl.create (MessageQueueThreadImpl.java:146)
com.facebook.react.bridge.queue.ReactQueueConfigurationImpl.create (ReactQueueConfigurationImpl.java:87)
com.facebook.react.bridge.CatalystInstanceImpl.<init> (CatalystInstanceImpl.java:101)
com.facebook.react.bridge.CatalystInstanceImpl.<init> (CatalystInstanceImpl.java:42)
com.facebook.react.bridge.CatalystInstanceImpl$Builder.build (CatalystInstanceImpl.java:574)
com.facebook.react.ReactInstanceManager.createReactContext (ReactInstanceManager.java:999)
com.facebook.react.ReactInstanceManager.access$600 (ReactInstanceManager.java:109)
com.facebook.react.ReactInstanceManager$4.run (ReactInstanceManager.java:802)
java.lang.Thread.run (Thread.java:761)
最佳答案
对于许多其他人也会出现这个问题,并且原因是多种多样的.你可以找到关于它的讨论here.因为我真的不知道你的应用程序做了什么,所以这里有一些可能的原因:

>您正在使用react-native-navigation(您可以尝试将其更改为react-navigation)
>您正在使用react-native-image-crop-picker或react-native-image-picker(这会产生相同的错误,导致您的应用在某些设备上崩溃,并且会抛出InterruptedException

如果问题是数字2,您可以尝试通过更改MainApplication.java来修复它:

@Override
public boolean clearHostOnActivityDestroy() {
    return false;
}

在acintyo回答中,数字2中的修正也是here的引用.

至于更改react-native版本你可以尝试但是我不推荐它,因为在阅读了上面提到的问题之后,我看到很多版本也经历过这个问题(大多数是0.49.或0.45.x)

转载注明原文:android – ReactNative中SimpleSettableFuture.java的重复崩溃 - 代码日志