有
a similar question
。我的代码不同,但原因可能相同。我认为我的代码更简单,可能有助于找到罪魁祸首。
首先,只会发生的崩溃
偶尔地
(即,代码在大多数情况下都能正常工作):
Class: java.lang.NullPointerException
Stack trace: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.dispatchCancelPendingInputEvents()' on a null object reference
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:4499)
at android.view.View.cancelPendingInputEvents(View.java:18456)
at android.app.Activity.cancelInputsAndStartExitTransition(Activity.java:4657)
at android.app.Activity.startActivityForResult(Activity.java:4636)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:753)
at androidx.core.app.ActivityCompat$Api16Impl.b(ActivityCompat.java:0)
at androidx.core.app.ActivityCompat.k(ActivityCompat.java:0)
at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:258)
at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:175)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
导致崩溃的代码
偶尔地
:
Intent intent = new Intent(this, FooActivity.class);
intent.putExtra("mode", "manage");
intent.putExtra("pro", true);
launcherFooActivity.launch(intent);
以下是launcherFooActivity:
final ActivityResultLauncher<Intent> launcherFooActivity = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
try {
...
} catch (Exception ex) {
...
}
});
有人能解释一下这次事故的可能原因吗?