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应用程序。

+0

您是否至少有一条#帮助缩小范围? – Daniel

+0

它没有说与行号相关的任何内容。它从字面上给了我那个错误信息。 –

如果你只是从头开始连接你的“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()); 
}