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