2015-10-27 96 views
0

我上传的APK更新谷歌商店,我看到在崩溃的急剧增加(他们都在Android上5),Crashlytics点我:Determening崩溃原因(BackStackRecord)

BackStackRecord.java line 797 
android.app.BackStackRecord.run 

然后说:

Non-fatal Exception: java.lang.NullPointerException 
Attempt to write to field 'int android.app.Fragment.mNextAnim' on a null object reference 
android.app.BackStackRecord.run (BackStackRecord.java:797) 
android.os.Looper.loop (Looper.java:145) 
android.app.ActivityThread.main (ActivityThread.java:5832) 
java.lang.reflect.Method.invoke (Method.java) 
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1194) 

从上一版本我所做的更改是轻微的,除了少数“美容”的变化,我只加了几行与Facebook的SDK工作。

+0

基本上你调用隐藏(),删除()等,对现在是空 –

回答

1

当您尝试在空指针上使用FragmentTransaction时,此错误很常见。作为一个例子,在做: fragmentTransaction.hide(fm.findFragmentByTag("yourfragmenttag"));而不检查你的片段是否存在。

尝试检查您是否未处理尚未初始化或您已经删除的片段。

要查看更多:Android FragmentManager BackStackRecord.run throwing NullPointerException

+0

的事情一个片段是我身边有20个不同的commit()/删除()..我如何检测问题真的发生在哪里? – BVtp

+1

事情是你不能从APK直接。对你来说最好的办法是有一个导致崩溃的特定用例,使你能够保护代码的有罪部分。这个错误不会发生在commit()期间,但通常当你调用show(),hide()...或者其他方法将片段作为参数时。该片段为空,这意味着您可能尝试将片段作为参数传递,该参数在您从其标签调用时为空。你可以做的是将你试图用这种方式调用的片段存储在一个对象上,并在使用它之前测试它的值,它是否为null。 – Virthuss