Приложение для внешнего сканера штрих-кода (используйте порт USB) - PullRequest
1 голос
/ 23 мая 2019

Обновление: появилось новое сообщение об указанном классе java enter image description here У меня есть учебник по созданию приложения для внешнего сканера штрих-кода (используйте порт USB) с использованием библиотеки Jar, предоставляемой Java +.Я пытаюсь создать то же приложение, используя 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();
                }
            }

        }
...