Android NullPointerException当应用程序进入后台且已打开登录时

Android NullPointerException当应用程序进入后台且已打开登录时,android,xamarin.android,mvvmcross,Android,Xamarin.android,Mvvmcross,我的Xamarin.Android应用程序有一个从main活动开始的入职流程。 每次我最小化应用程序并尝试再次启动它时,输出中都会出现NullPointerException,我无法找到根本原因 10-30 13:52:59.102 W/System.err(23618): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a nu

我的Xamarin.Android应用程序有一个从main活动开始的入职流程。 每次我最小化应用程序并尝试再次启动它时,输出中都会出现NullPointerException,我无法找到根本原因

10-30 13:52:59.102 W/System.err(23618): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference
10-30 13:52:59.102 W/System.err(23618):     at android.view.ViewRootImpl.getHostVisibility(ViewRootImpl.java:1809)
10-30 13:52:59.102 W/System.err(23618):     at android.view.ViewRootImpl.handleAppVisibility(ViewRootImpl.java:1445)
10-30 13:52:59.102 W/System.err(23618):     at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4841)
10-30 13:52:59.102 W/System.err(23618):     at android.os.Handler.dispatchMessage(Handler.java:106)
10-30 13:52:59.103 W/System.err(23618):     at android.os.Looper.loop(Looper.java:214)
10-30 13:52:59.103 W/System.err(23618):     at android.app.ActivityThread.main(ActivityThread.java:7078)
10-30 13:52:59.103 W/System.err(23618):     at java.lang.reflect.Method.invoke(Native Method)
10-30 13:52:59.103 W/System.err(23618):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
10-30 13:52:59.103 W/System.err(23618):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
10-30 13:53:01.421 W/ActivityThread(23618): handleWindowVisibility: no activity for token android.os.BinderProxy@177ac90
10-30 13:53:01.473 I/DecorView(23618): createDecorCaptionView >> DecorView@a2ae0c1[], isFloating: false, isApplication: true, hasWindowDecorCaption: false, hasWindowControllerCallback: true
Onboard是使用AppIntro类创建的,它从MainActivity调用,如下所示:

 private bool CanOpenOnBoarding()
        {
            var getPrefs = PreferenceManager.GetDefaultSharedPreferences(BaseContext);
            bool isFirstStart = getPrefs.GetBoolean(AppDetails.ShowOnboarding, true);
            if (isFirstStart)
            {
                StartActivity(new Intent(this, typeof(OnBoarding)));
                Finish();
                return true;
            }

            return false;
        }
main活动的OnCreate是:

 protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            MainViewModel.PropertyChanged += OnProprietyChanged;

            Presenter = (CustomPresenter) Mvx.IoCProvider.Resolve<IMvxAndroidViewPresenter>();
            Presenter.RegisterFragmentManager(FragmentManager);

            var appService = Mvx.IoCProvider.Resolve<IApplicationService>();
            appService.InitializeDbAsync().ConfigureAwait(false).GetAwaiter().GetResult();

            MainViewModel.CheckForConnectivityAsync();

            if (CanOpenOnBoarding())
            {
                return;
            }

            TabHost = FindViewById<TabHost>(global::Android.Resource.Id.TabHost);
            TabHost.TabWidget.SetDividerDrawable(null);
            TabHost.Setup();

            //leave them without Await
            MainViewModel.DisplayTermsAndConditionsModalAsync();
        }
protectedoverride void OnCreate(捆绑包)
{
base.OnCreate(bundle);
MainViewModel.PropertyChanged+=OnPropertyChanged;
Presenter=(CustomPresenter)Mvx.IoCProvider.Resolve();
Presenter.RegisterFragmentManager(碎片管理器);
var appService=Mvx.IoCProvider.Resolve();
appService.InitializeDbAsync();
MainViewModel.CheckForConnectionVityAsync();
如果(CANopenOnboard())
{
返回;
}
TabHost=findviewbyd(全局::Android.Resource.Id.TabHost);
TabHost.TabWidget.SetDividerDrawable(null);
TabHost.Setup();
//不要等待
MainViewModel.DisplayTerms和ConditionsModalAsync();
}
未命中其他生命周期(OnResume、OnPause)。 每次我恢复应用程序时,我都会被导航到MainActivity的OnCreate方法,在那里我会再次启动入职活动

应用程序没有崩溃,我可以从最近的应用程序中看到这一点。
我如何才能找到并修复NullPointerException的根本原因?

你能显示异常发生的代码吗?我不知道异常发生在哪里只有在应用程序被放到后台然后恢复后才会发生崩溃吗?有时当我按下“最近的应用程序”时,NullPointerException也会发生按钮,有时当我从minimized.share返回时,请共享onresume()onStart()onStop()和onPaused()代码,或者更容易共享整个mainActivity Codecut您可以显示异常发生的代码吗?我不知道异常发生在哪里只有在应用程序被放到后台然后恢复后才会发生崩溃吗?有时当我按下“最近的应用程序”时,NullPointerException也会发生按钮,有时当我从minimized.share返回时,您可以共享onresume()onStart()onStop()和onPaused()代码,或者更容易共享整个main活动代码