我正在调查几天前开始出现在某些小米和 OnePlus 设备上的 Android 应用程序崩溃。它只发生在少数用户中(< 10) at the moment, but it bothers me that I can't figure out what is going on.
崩溃是由在应用程序中调用 startActivity(...) 触发的,但实际异常是由 ActivityStarter 内部的系统进程抛出的:
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.android.server.wm.ConfigurationContainer.inPinnedWindowingMode()' on a null object reference
at com.android.server.wm.ActivityStarter.isAllowedToStart(ActivityStarter.java:2068)
at com.android.server.wm.ActivityStarter.startActivityInner(ActivityStarter.java:1874)
at com.android.server.wm.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1678)
at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1231)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:717)
有两件事让我困惑:
boolean blockBalInTask = (newTask
|| !targetTask.isUidPresent(mCallingUid)
|| (LAUNCH_SINGLE_INSTANCE == mLaunchMode && targetTask.inPinnedWindowingMode()));
什么可以解释这种行为?
无法重现该问题,并且只发生在少数用户身上。