Java 外部条形码扫描仪应用程序(使用USB端口)

Java 外部条形码扫描仪应用程序(使用USB端口),java,xamarin.forms,xamarin.android,barcode-scanner,bindings-library,Java,Xamarin.forms,Xamarin.android,Barcode Scanner,Bindings Library,更新:出现了关于提供的java类的新错误 我有一个教程,通过使用Java+提供的Jar库为外部条形码扫描仪(使用USB端口)构建一个应用程序。我正试图通过使用Xamarin.Forms和Jar库(通过BindingsLibrary项目)构建相同的应用程序。然而,我犯了一个错误 “Java.Lang.NoClassDefFoundError:”当我编译代码时。有人知道我做错了什么吗 这是我的java类: USBScanFactory package com.unistrong.qrcod

更新:出现了关于提供的java类的新错误 我有一个教程,通过使用Java+提供的Jar库为外部条形码扫描仪(使用USB端口)构建一个应用程序。我正试图通过使用Xamarin.Forms和Jar库(通过BindingsLibrary项目)构建相同的应用程序。然而,我犯了一个错误 “Java.Lang.NoClassDefFoundError:”当我编译代码时。有人知道我做错了什么吗

这是我的java类: USBScanFactory

     package com.unistrong.qrcode;

      import com.unistrong.pin.GOPOManager;

   public class USBQRscanFactory {
    private static USBQRscanFactory factory = new USBQRscanFactory();
    static boolean mIsScanContinue = false;
    private GOPOManager mGopoManager = GOPOManager.getInstance();
    private OnScanListener mScanListener;
    private QRScanManagerJNI qrScanManagerJNI;

    private USBQRscanFactory() {
    }

    public static USBQRscanFactory createInstance() {
        return factory;
    }

    public void init(OnScanListener onScanListener) {
        this.mGopoManager.Pin11_High();
        this.qrScanManagerJNI = new QRScanManagerJNI(onScanListener);
        this.qrScanManagerJNI.callbackInit();
    }

    public void enableAddKeyValue(int i) {
        QRScanManagerJNI.AddKeyValue(i);
    }

    public void open() {
        this.mGopoManager.Pin11_Low();
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        QRScanManagerJNI.OpenDev();
    }

    public void powerOn() {
        this.mGopoManager.Pin11_High();
        this.mGopoManager.openPower5V_3V3();
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public void powerOff() {
        this.mGopoManager.Pin11_High();
        this.mGopoManager.closePower5V_3V3();
    }

    public void scan_start() {
        QRScanManagerJNI.QRScan();
    }
在ScanListener上:

package com.unistrong.qrcode;

public interface OnScanListener {
    void scanReport(byte[] bArr);

    void statusReport(int i);
}
这是我在Xamain上的代码:

 public class OnScanListener : Java.Lang.Object, IOnScanListener
        {

            H myH = new H();
            public void ScanReport(byte[] byteArray)
            {
                lock (myH)
                {
                    if (null != byteArray && byteArray.Length > 0)
                    {
                        myH.SendMessage(myH.ObtainMessage(0, byteArray));
                    }
                }
            }

            public void StatusReport(int i)
            {
                lock (myH)
                {
                    myH.SendEmptyMessage(i);
                }

            }


        }

        #endregion
        public MainPage()
        {
            usbScan = USBQRscanFactory.CreateInstance();


            InitializeComponent();

        }







        int count = 0;
        private void scanBtn_Clicked(object sender, EventArgs e)
        {
            count++;
            //usbScan.Init(OnScanListener);
            OnScanListener myOnScanListener = new OnScanListener();
            usbScan.PowerOn();
            usbScan.Init(myOnScanListener);
            Barcode.Text = "";

            openScanner(true);
            usbScan.Scan_start();
        }



        //Open Scanner
        private void openScanner(bool open)
        {
            if (open == mWorkingStateFlag) return;
            if (open)
            {
                try
                {
                    Java.Lang.Thread.Sleep(50);
                    usbScan.Open();
                    usbScan.EnableAddKeyValue(0);
                }
                catch (Java.Lang.InterruptedException e)
                {
                    // TODO Auto-generated catch block
                    e.PrintStackTrace();
                }
            }

        }

如果您指定扫描仪供应商和型号、提供的库/SDK名称和规格等,很容易得到答案。这是要使用的SDK吗?你有试着在这里打听吗?而且,这些文章可能会有所帮助,此外,这些文章可能会有所帮助。[Xamarin表单与android绑定(.jar)[关闭]](),感谢您的回复。是的,我看了他们的SDK+教程。然而,他们似乎不想提供一个完整的图书馆。在该jar文件中,缺少一些重要的类。这就是为什么我在使用该jar文件并遵循他们的指示时遇到问题的原因。是否考虑尝试使用这些库而不是供应商的.jar文件?/,如果您指定扫描仪供应商和型号、提供的库/SDK名称和规格等,很容易得到答案。这是要使用的SDK吗?你有试着在这里打听吗?而且,这些文章可能会有所帮助,此外,这些文章可能会有所帮助。[Xamarin表单与android绑定(.jar)[关闭]](),感谢您的回复。是的,我看了他们的SDK+教程。然而,他们似乎不想提供一个完整的图书馆。在该jar文件中,缺少一些重要的类。这就是为什么我在使用该jar文件并遵循他们的指示时遇到问题的原因。是否考虑尝试使用这些库而不是供应商的.jar文件?/,