我调用Scan()方法时ZXing.Net.Mobile条形码扫描器错误

时间:2016-05-04 00:34:43

标签: c# win-universal-app zxing

我正在尝试将条形码扫描仪应用到我的Windows通用应用程序中。 我正在使用ZXing.Net.Mobile

var _scanner = new MobileBarcodeScanner(this.Dispatcher);                    
var result = await _scanner.Scan();

然后,Visual Studio在此行停止

if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();

那么,如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

  

我没有例外,VS只是突出了上面提到的那条线。我相信问题是我在参考文献中没有ZXing.Net.Mobile.WindowsUniversal。但我在NuGet中找不到它。

您可以单击vs的“工具”并选择标签“NuGet Package Manager”,然后选择“管理NuGet Package for Solution”,在“Browse”标签中搜索“ZXing.Net.Mobile”,如果您正在使用Uwp应用程序,选择“ZXing.Net.Mobile”,如果您使用Xamarin进行开发,请选择“ZXing.Net.Mobile.Forms”,在窗口右侧,选择您的项目并单击“安装”。

这是我完成安装此图片包的图片: enter image description here

我已经在按钮点击事件中测试了您的代码,安装此软件包后可以调试您发布的代码。

但是,如果我在本地计算机上调试它,发生了同样的错误,这是可能的,因为我的计算机上没有可以初始化扫描程序,因此当我在移动模拟器上测试时,不会发生此错误。 / p>

if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();

其他一些问题也可能导致问题,如果我的答案无法解决您的问题,您可以添加评论。

  

我认为例外是“访问被拒绝”

这是您对问题的最新评论,当您想在应用中使用ZXing时,您需要打开项目的清单文件,选择“功能”标签,然后在左侧启用“Internet(客户端)” “,”麦克风“和”网络摄像头“功能。刚刚测试过,如果您没有启用此功能,移动模拟器上也会出现相同的错误。这也是导致此问题的原因。

答案 1 :(得分:1)

您必须在UWP的主页中设置。

        this.InitializeComponent();
        this.NavigationCacheMode = NavigationCacheMode.Enabled;            ZXing.Net.Mobile.Forms.WindowsUniversal.ZXingScannerViewRenderer.Init();

然后点击按钮点击Xamarin表格或原生应用页面

        var options = new ZXing.Mobile.MobileBarcodeScanningOptions();           
        options.TryHarder=true;                        
        var scanner = new ZXing.Mobile.MobileBarcodeScanner();             
        scanner.TopText="Hold For Scanning";
        scanner.BottomText="Tally Scan";
        var result = await scanner.Scan(options);                             
        if (result != null) {
            updateListWithText (result.Text);
       }    

答案 2 :(得分:1)

@hatim 您需要在使用之前初始化扫描仪。

在开始使用扫描仪之前,

将此行添加到代码中。你只需要这样做一次。所以把它放在你的主要活动中

     `   MobileBarcodeScanner.Initialize(Application);`