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

.NET MAUI中CameraBarcodeReaderView找不到Handler的排查求助

问题:HandlerNotFoundException 找不到 CameraBarcodeReaderView 的处理器

我遇到了如下错误,但确认自己的XAML与C#文件配置无误:

Microsoft.Maui.Platform.HandlerNotFoundException: 'Handler not found for view ZXing.Net.Maui.Controls.CameraBarcodeReaderView.'

我推测这是CameraBarcodeReaderView对应的处理器未被找到,但相关配置似乎已存在,想请教问题出在哪里?


相关代码:

XAML代码:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:zxing="clr-namespace:ZXing.Net.Maui.Controls;assembly=ZXing.Net.MAUI"
             x:Class="ScanAndScoringMauiApp.Pages.ScanPage"
             Title="ScanPage">

    <Grid RowDefinitions="1*,3*,1*">

        <zxing:CameraBarcodeReaderView
            Grid.Row="0" Grid.RowSpan="3"
            x:Name="barcodeView"
            BarcodesDetected="barcodeView_BarcodesDetected"
             />

        <Grid
            Grid.Row="0"
            BackgroundColor="#aa000000">
            <Label Grid.Row="2" Text="Top text..." HorizontalOptions="Center" VerticalOptions="Center" TextColor="White" />
        </Grid>

        <Grid
            Grid.Row="3"
            BackgroundColor="#aa000000"
            Padding="20"
            ColumnDefinitions="Auto,*,Auto">

            <Button Text="🔄️" Grid.Column="0" BackgroundColor="#aa000000" CornerRadius="8" BorderColor="Black" Clicked="Button_Clicked" />

            <zxing:BarcodeGeneratorView
                x:Name="barcodeGenerator"
                Grid.Column="1"
                HorizontalOptions="Center"
                VerticalOptions="Center"
                HeightRequest="100"
                WidthRequest="100"
                ForegroundColor="DarkBlue"
                Format="QrCode"
                Value="Bla"
                BarcodeMargin="1" />

            <Button Text="💡" Grid.Column="2" BackgroundColor="#aa000000" CornerRadius="8" BorderColor="Black" Clicked="Button_Clicked_1" />
        </Grid>

    </Grid>
</ContentPage>

C#代码:

namespace ScanAndScoringMauiApp.Pages;

public partial class ScanPage : ContentPage
{
    public ScanPage()
    {
        InitializeComponent();
    }

    private void Button_Clicked(object sender, EventArgs e)
    {

    }

    private void Button_Clicked_1(object sender, EventArgs e)
    {

    }

    private void barcodeView_BarcodesDetected(object sender, 
        ZXing.Net.Maui.BarcodeDetectionEventArgs e)
    {

    }
}

可能的解决步骤:

  • 确认已正确安装ZXing.Net.MAUI NuGet包,确保所有目标平台都已引用该包
  • 在MauiProgram.cs的CreateMauiApp方法中添加ZXing的初始化代码:
    var builder = MauiApp.CreateBuilder();
    builder
        .UseMauiApp<App>()
        .UseBarcodeReader(); // 必须添加这行初始化代码
    
  • 配置平台相机权限:
    • Android:在AndroidManifest.xml中添加相机权限声明:
      <uses-permission android:name="android.permission.CAMERA" />
      
    • iOS:在Info.plist中添加相机权限描述:
      <key>NSCameraUsageDescription</key>
      <string>需要访问相机进行扫码</string>
      
  • 清理项目(删除bin/obj文件夹),然后重新生成解决方案

内容的提问来源于stack exchange,提问作者Wallace B. McClure

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:49:14