当我单击“ 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);
}
答案 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);
}
上面也提出了很多好的建议,但是最好的建议是创建一个“异常捕获点”。那会告诉您例外的类型和行。