You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET MAUI中使用ZXing.Net.Maui出现黑屏的问题排查

解决方案

从日志里的[CameraValidator] Verifying camera lens facing on rain, lensFacingInteger: null可以定位问题:扫描器未指定摄像头方向,导致相机无法正确初始化。

按以下步骤修复:

  • 指定摄像头方向
    给CameraBarcodeReaderView添加CameraOptions,明确使用后置或前置摄像头:

    <zxing:CameraBarcodeReaderView x:Name="cameraBarcodeReaderView" 
                                   Grid.Column="0" 
                                   Grid.Row="0" 
                                   HeightRequest="200" 
                                   WidthRequest="200">
        <zxing:CameraBarcodeReaderView.CameraOptions>
            <zxing:CameraOptions CameraFacing="Back"/> <!-- 需切换前置则改为Front -->
        </zxing:CameraBarcodeReaderView.CameraOptions>
    </zxing:CameraBarcodeReaderView>
    
  • 确认权限配置完整
    检查Android项目的AndroidManifest.xml,确保已添加必要权限:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    
  • 可选:明确条形码扫描格式
    添加BarcodeReaderOptions指定要扫描的格式,提升性能:

    <zxing:CameraBarcodeReaderView.BarcodeReaderOptions>
        <zxing:BarcodeReaderOptions Formats="QRCode, Code128" />
    </zxing:CameraBarcodeReaderView.BarcodeReaderOptions>
    
  • 可选:主动检查权限
    在页面加载时主动验证相机权限状态,确保权限已授予:

    protected override async void OnAppearing()
    {
        base.OnAppearing();
        var status = await Permissions.CheckStatusAsync<Permissions.Camera>();
        if (status != PermissionStatus.Granted)
        {
            status = await Permissions.RequestAsync<Permissions.Camera>();
        }
        if (status == PermissionStatus.Granted)
        {
            cameraBarcodeReaderView.IsEnabled = true;
        }
    }
    

完成以上调整后重新运行,黑屏问题即可解决。


内容的提问来源于stack exchange,提问作者Thomas Carlton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:55:24