1

I'm having this issue with an app I have written for a Scanner running windows mobile 5.0. I have no idea what it means, can anyone with some Java Cre-Me, windows mobile experience lend some assistance please??

Error given on execution:

java.lang.UnsatisfiedLinkError: no SymbolJavaApi in java.library.path
    at java.lang.ClassLoader.loadLibraryInternal() 
    at java.lang.ClassLoader.loadLibrary()
    at java.lang.Runtime.loadLibrary0()
    at java.lang.System.loadLibrary()
    at 
    at com.vmt.plugins.symbol.barcodescanner.services.ScannerImplementation.read()
    at com.vmt.plugins.symbol.barcodescanner.ScannerPlugin.invoke()
    at ScannerTest.startScanning()
    at ScannerTest.createwindow()
    at ScannerTest.main()
Buhake Sindi
  • 87,898
  • 29
  • 167
  • 228

2 Answers2

1

For UnsatisfiedLinkError, the JDK states:

Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.

That means that there is a method inside ScannerImplementation.read() that is a native call definition that it can't in the java.library.path or any system defined libraries.

What this means is that the DLL that is needed for your ScannerImplementation isn't registered in the Java LIB path and thus the JVM can't do a native call.

I hope this helps.

Buhake Sindi
  • 87,898
  • 29
  • 167
  • 228
0

The Java class loader tries to access the Symbol API but can not find the required libraries in the given library path.

On a desktop system I'd say you need:

  1. Either extend the class path accordingly or
  2. Copy missing external DLLs to the path where your application resides

I'm sure that Symbol/Motorola has some examples where you can see how to do that - maybe you need to install the classes to the device first using a CAB file.

I'm coming from a .NET background and for that, there's a Symbol API CAB file which installs required DLLs to the device.

Thorsten Dittmar
  • 55,956
  • 8
  • 91
  • 139