单击“ MobileBarCodeScanner()”中的“取消”按钮时,应用程序退出并崩溃!(Xamarin.iOS)

时间:2019-07-04 12:14:28

标签: xamarin xamarin.ios

当我单击“ MobileBarcodeScanner”页面中的“取消”按钮,该应用程序存在并且崩溃时,我正在寻找解决方案。我想解决这个问题,只是在单击“取消”按钮时返回其他视图控制器

private async void CustomizedQrCodeScanner()
    {
        var scanner = MobileBarcodeScanner();
        var result = await scanner.Scan();
            if (result.Text != null)
            {
                qrcodeFromLiveCamera = result.Text;
                Console.WriteLine("Scanned Barcode: " + result.Text);
                ShowMessage("QrCode Detected: ", result.Text);
        }

enter image description here

1 个答案:

答案 0 :(得分:2)

最有可能是因为您有一个Null引用异常。 您正在检查result.Text是否为空。但是,当用户按下“取消”时,result等于null,因此无法到达Text属性。
因此,只需将result的空检查放在result.Text的空检查之前,就可以解决问题。

一种简单的方法是使用“ Safe-navigation”,如图所示

var result = await scanner.Scan();
if (result?.Text != null)
{
    qrcodeFromLiveCamera = result.Text;
    Console.WriteLine("Scanned Barcode: " + result.Text);
    ShowMessage("QrCode Detected: ", result.Text);
}

上面也提出了很多好的建议,但是最好的建议是创建一个“异常捕获点”。那会告诉您例外的类型和行。