我正在尝试将条形码扫描仪应用到我的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();
那么,如何解决这个问题?
答案 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”,在窗口右侧,选择您的项目并单击“安装”。
我已经在按钮点击事件中测试了您的代码,安装此软件包后可以调试您发布的代码。
但是,如果我在本地计算机上调试它,发生了同样的错误,这是可能的,因为我的计算机上没有可以初始化扫描程序,因此当我在移动模拟器上测试时,不会发生此错误。 / 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);`