Xamarin MVVMCross ZXing后退按钮

Xamarin MVVMCross ZXing后退按钮,xamarin,xamarin.android,mvvmcross,zxing,Xamarin,Xamarin.android,Mvvmcross,Zxing,使用zxing条形码扫描仪时,MVVMCross中的“后退”按钮出现问题。不幸的是,当我按下“上一步”按钮时,出现了一个错误:Java.Lang.NullPointerException:尝试对空对象引用调用虚拟方法“long android.graphics.Paint.getNativeInstance()” 当我评论我时,一切都好。 有人知道怎么回事吗 这是我的片段扫描视图类: public class ScannView : MvxFragmentActivity, IBarcod

使用zxing条形码扫描仪时,MVVMCross中的“后退”按钮出现问题。不幸的是,当我按下“上一步”按钮时,出现了一个错误:Java.Lang.NullPointerException:尝试对空对象引用调用虚拟方法“long android.graphics.Paint.getNativeInstance()”

当我评论我时,一切都好。 有人知道怎么回事吗

这是我的片段扫描视图类:

  public class ScannView :  MvxFragmentActivity, IBarcodeFragmentOptions
{
    protected ScannViewModel MainViewModel
    {
        get { return ViewModel as ScannViewModel; }
    }
   public static ZXingScannerFragment scanFragment;
    protected override void OnResume()
    {
        base.OnResume();
        try
        {
            if (scanFragment == null)
            {
                scanFragment = new ZXingScannerFragment();

                SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.frameScanner, scanFragment)
                    .Commit();
            }
            scan();
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
        }
    }

    protected override void OnPause()
    {
        try
        {


            scanFragment?.StopScanning();
            base.OnPause();
        }catch(Exception ex)
        {
            Console.WriteLine(ex);
        }
    }
    protected override void OnRestart()
    {
        base.OnRestart();
    }
    public void ToogleFlashLight(bool on)
    {
        if (scanFragment != null)
            scanFragment.SetTorch(on);
    }

   public void scan()
    {

        try
        {
            //  var results = await CrossPermissions.Current.RequestPermissionsAsync(Plugin.Permissions.Abstractions.Permission.Camera);
            //  var status = results[Plugin.Permissions.Abstractions.Permission.Camera];
            //   if (status == Plugin.Permissions.Abstractions.PermissionStatus.Granted)
            //   {
            var opts = new MobileBarcodeScanningOptions
            {
                PossibleFormats = new List<ZXing.BarcodeFormat> {
                    ZXing.BarcodeFormat.QR_CODE
                },
                CameraResolutionSelector = availableResolutions => {

                    foreach (var ar in availableResolutions)
                    {
                        Console.WriteLine("Resolution: " + ar.Width + "x" + ar.Height);
                    }
                    return null;
                }
            };
            scanFragment?.StartScanning(opts,result =>
               {
                   if (result == null || string.IsNullOrEmpty(result.Text))
                   {
                       RunOnUiThread(() => Toast.MakeText(this, "Anulowanie skanowanie", ToastLength.Long).Show());
                       return;
                   }
                   MainViewModel.ScannedCode = result.Text;  //ChangePropertyToEmpty();
                   RunOnUiThread(() => Toast.MakeText(this, "Zeskanowano: " + result.Text, ToastLength.Short).Show());

               });
          //  }
        }catch(Exception ex)
        {
            Debug.WriteLine(ex);
        }
    }
    protected override void OnViewModelSet()
    {
        MobileBarcodeScanner.Initialize(Application);
        base.OnViewModelSet();
        SetContentView(Resource.Layout.layout_scann);

    }

}

在调用
Close()
@Cheesebaron时,听起来很像您没有正确关闭扫描仪。我已尝试在Close()之前调用scannerFragment.StopScanning(),但没有任何更改。问题也是当我按下“电话后退”按钮时。另外,我正在停止OnPause()中的扫描,但此方法之后会出现错误。@straiser您解决了此问题吗?调用
Close()
@Cheesebaron时,听起来很像您没有正确关闭扫描仪。我尝试在Close()之前调用scannerFragment.stopscan(),但没有任何更改。问题也是当我按下“电话后退”按钮时。另外,我正在停止OnPause()中的扫描,但错误发生在这个方法之后。@straiser您解决了这个问题吗?
    public void ButtonBackClick()
    {
        Close(this);
    }