我有一个应用程序,其中有一个列表,当您单击其中的项目时,我会显示一个详细视图,其中包含地图等。
这已经有一段时间了,但昨天我收到了一个奇怪的崩溃日志,这是我几个月前部署这个版本以来的第一个。根据崩溃报告,它在运行 4.4 的三星 Galaxy S4 上。
基本上它说
FragmentManager manager = mapFragment.getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
在 begintransaction 调用上引发 nullpointerexception,显然是因为前行的“getFragmentManager”返回 null。
我的 mapfragment 在父线性布局(带有列表的那个)中初始化,如下所示:
userStatusDetailsLayout = (UserStatusDetailsLayout) inflater.inflate(R.layout.userstatsdetails, container, false);
然后我直接打电话
userStatusDetailsLayout.initCompononents(activity);
并在该方法中初始化导致空指针的mapfragment:
mapFragment = (SupportMapFragment) activity.getSupportFragmentManager().findFragmentById(R.id.statsDetailMap);
我从来没有在我的任何测试单元上看到过这种情况,也没有在我的任何测试人员上看到过这种情况。我难住了。这与膨胀和查找碎片的时间有关吗?(我夸大 detailslayout 的原因是我不想这样做,除非有人真的想看到它,当他们这样做时,我想保留它并重新使用它,因为它,尤其是在速度较慢的手机上,是膨胀地图的成本相当高)。
发布此内容以查看是否有人可能知道何时会发生这种情况...