ZXing条码扫描器NamaReferenceException与Xamarin(视觉工作室)
问题描述:
我想在我的Andriod应用程序使用Visual Studio构建实现ZXing条码扫描仪。当我尝试点击按钮来扫描它时,出现此错误:ZXing条码扫描器NamaReferenceException与Xamarin(视觉工作室)
System.NullReferenceException:对象引用未设置为对象的实例 。
这是ScanActivity.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using ZXing.Mobile;
namespace Shopinator
{
[Activity(Label = "ScanActivity")]
public class ScanActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.ScanLayout);
Button scanCodeSrc = FindViewById<Button>(Resource.Id.scanCode);
Button goBackSrc = FindViewById<Button>(Resource.Id.goBackBtn);
scanCodeSrc.Click += scanCodeSrc_Click;
goBackSrc.Click += goBackSrc_Click;
}
public async void scanCodeSrc_Click(object sender, EventArgs e)
{
MobileBarcodeScanner.Initialize(Application);
MobileBarcodeScanner scanner = new MobileBarcodeScanner();
var result = await scanner.Scan();
if (result != null)
Console.WriteLine("Scanned Barcode: " + result.Text);
}
private void goBackSrc_Click(object sender, EventArgs e)
{
StartActivity(typeof(MainMenuActivity));
}
}
}
这是ScanLayout.axml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2579BF"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView
android:text="Welcome to the Product Scan page, please press the scan button and proceed with scanning the barcode/qrcode."
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scanPageHelp" />
<Button
android:id="@+id/scanCode"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/password"
android:layout_marginTop="10dp"
android:background="#000000"
android:text="PRESS HERE TO SCAN"
android:textColor="@android:color/white" />
<Button
android:id="@+id/goBackBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/password"
android:layout_marginTop="10dp"
android:background="#000000"
android:text="Go back to the Main Menu"
android:textColor="@android:color/white" />
</LinearLayout>
这是xamarin我的第一个Android应用程序。
答
如果你只是从头开始连接你的“MainPage”将不会在导航上下文中,并会像这样死去。将您的MainPage放置在导航上下文中。完成Zxing的“简单”版本 - https://github.com/jhealy/xammutts/tree/master/ZXingPlaySLN/ZXingPlay。
public App()
{
InitializeComponent();
// jhealy: this MUST be a nav page, watch out
// MainPage = new ZXingPlay.MainPage();
MainPage = new NavigationPage(new ZXingPlay.MainPage());
}
您是否至少有一条#帮助缩小范围? – Daniel
它没有说与行号相关的任何内容。它从字面上给了我那个错误信息。 –