尝试在空对象引用上调用虚拟方法“void android.view.View.dispatchCancelPendingInputEvents()”

Hon*_*ong 5 android-activity

还有一个类似的问题。我的代码不同,但原因可能是相同的。我认为我的代码更简单,可能有助于找到罪魁祸首。首先,偶尔发生的崩溃(即代码大部分时间都工作正常):

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)
Run Code Online (Sandbox Code Playgroud)

偶尔导致崩溃的代码:

Intent intent = new Intent(this, FooActivity.class);
intent.putExtra("mode", "manage");  
intent.putExtra("pro", true);
launcherFooActivity.launch(intent);
Run Code Online (Sandbox Code Playgroud)

以下是launcherFooActivity:

   final ActivityResultLauncher<Intent> launcherFooActivity = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            result -> {
                try {
                   ...
                } catch (Exception ex) {
                   ...
                }
            });
Run Code Online (Sandbox Code Playgroud)

有人能解释一下这次事故的可能原因吗?