2017-02-24 192 views
2

我一直在经历着一场崩溃在我的反应原生Android应用程序与以下调用堆栈崩溃的反应,原生Android应用

02-24 12:38:35.799 2878-2878/com.myapp E/AndroidRuntime: FATAL EXCEPTION: main 
                  Process: com.myapp, PID: 2878 
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.unFocus(android.view.View)' on a null object reference 
                   at android.view.ViewGroup.removeViewsInternal(ViewGroup.java:4300) 
                   at android.view.ViewGroup.removeViewsInLayout(ViewGroup.java:4156) 
                   at com.facebook.react.views.view.ReactViewGroup.updateSubviewClipStatus(ReactViewGroup.java:307) 
                   at com.facebook.react.views.view.ReactViewGroup.updateClippingToRect(ReactViewGroup.java:283) 
                   at com.facebook.react.views.view.ReactViewGroup.updateClippingRect(ReactViewGroup.java:276) 
                   at com.facebook.react.views.scroll.ReactScrollView.updateClippingRect(ReactScrollView.java:220) 
                   at com.facebook.react.views.scroll.ReactScrollView.onScrollChanged(ReactScrollView.java:152) 
                   at android.widget.ScrollView.onOverScrolled(ScrollView.java:801) 
                   at com.facebook.react.views.scroll.ReactScrollView.onOverScrolled(ReactScrollView.java:341) 
                   at android.view.View.overScrollBy(View.java:18607) 
                   at android.widget.ScrollView.computeScroll(ScrollView.java:1293) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14154) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.View.draw(View.java:14959) 
                   at android.view.ViewGroup.drawChild(ViewGroup.java:3405) 
                   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198) 
                   at android.view.View.draw(View.java:15234) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14167) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 
                   at android.view.View.updateDisplayListIfDirty(View.java:14127) 
                   at android.view.View.getDisplayList(View.java:14189) 
                   at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:273) 
                   at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:279 
02-24 12:38:43.283 2878-2878/com.myapp I/Process: Sending signal. PID: 2878 SIG: 9 

的中止是间歇性的,没有一套重现步骤。如果其他人在Android上遇到类似的崩溃,请分享,如果您有更多信息。

谢谢!

+0

日志意味着什么没有代码,把它比作。请参阅[mcve] –

+0

debug js code no simulator它在控制台中提供完整的消息 –

+0

@NickCardoso就像我说过的,我不确定中止在哪里发生。它正在间歇性地发生,我不知道要分享代码的哪一部分。 –

回答

0

这是一个已知问题的ListView:

设置ListView的removeClippedSubviewsfalse可以防止死机

https://github.com/facebook/react-native/issues/11825

+0

我会试一试并检查是否继续看到中止。我检查了你提到的github问题,并且调用堆栈与我的相比看起来有点不同。在那里,用户遇到IndexOutOfBounds异常,我正在观察NullPointerException,但它仍然可能是相关的。谢谢。 –