Groups > IBM > WebSphere Studio Device Developer > Re: UnsatisfiedLinkError (126)




UnsatisfiedLinkError (126)

UnsatisfiedLinkError (126)
Mon, 5 Nov 2007 23:05:27 +0100
Hi,

When I execute a JNI test on my new PDA (with the following WEME version: 
ibm-weme-wm50-arm-ppro11_6.1.1.20061110-161633.exe), I get the following 
exception:

java.lang.UnsatisfiedLinkError: /Windows/jniTest.dll ((126) No se ha podido 
encontrar el m)
 at java.lang.ClassLoader.loadLibraryWithPath(Unknown Source)
 at java.lang.System.load(Unknown Source)
 at Prueba.main(Unknown Source)
 at java.lang.reflect.AccessibleObject.invokeV(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.ibm.oti.vm.JarRunner.main(Unknown Source)

Unfortunately, the sentence is not finished and is in Spanish. The 
translation would be: "Cannot find the m".

I've used both System.LoadLibrary and System.Load with no success; and it's 
not a problem of the location of the dll (it's copied in the Windows 
directory and the J9's bin directory) or by the java.library.path System 
property.

However, the same test application and dll library in other PDA works. But 
both PDAs have Windows Mobile 5.

What's the problem?

Thanks in advance,
Jaime 

Post Reply
Re: UnsatisfiedLinkError (126)
Wed, 7 Nov 2007 09:16:09 +0100
I'm still working on this problem. I couldn't solve it but, at least, I have 
the whole sentence of the exception (even in English):

java.lang.UnsatisfiedLinkError: /Windows/jniTest.dll ((126) The specified 
module could not be found)

Any idea?

Thanks,
Jaime

"Jaime" <jjjaimeosgi@gmail.com> escribió en el mensaje 
news:fgo430$28k7q$1@news.boulder.ibm.com...
> Hi,
>
> When I execute a JNI test on my new PDA (with the following WEME version: 
> ibm-weme-wm50-arm-ppro11_6.1.1.20061110-161633.exe), I get the following 
> exception:
>
> java.lang.UnsatisfiedLinkError: /Windows/jniTest.dll ((126) No se ha 
> podido encontrar el m)
> at java.lang.ClassLoader.loadLibraryWithPath(Unknown Source)
> at java.lang.System.load(Unknown Source)
> at Prueba.main(Unknown Source)
> at java.lang.reflect.AccessibleObject.invokeV(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at com.ibm.oti.vm.JarRunner.main(Unknown Source)
>
> Unfortunately, the sentence is not finished and is in Spanish. The 
> translation would be: "Cannot find the m".
>
> I've used both System.LoadLibrary and System.Load with no success; and 
> it's not a problem of the location of the dll (it's copied in the Windows 
> directory and the J9's bin directory) or by the java.library.path System 
> property.
>
> However, the same test application and dll library in other PDA works. But

> both PDAs have Windows Mobile 5.
>
> What's the problem?
>
> Thanks in advance,
> Jaime
> 

Post Reply
Re: UnsatisfiedLinkError (126)
Wed, 07 Nov 2007 16:10:29 -070
Jaime wrote:
> I'm still working on this problem. I couldn't solve it but, at least, I
have 
> the whole sentence of the exception (even in English):
> 
> java.lang.UnsatisfiedLinkError: /Windows/jniTest.dll ((126) The specified 
> module could not be found)
> 
> Any idea?

Since it happens on one device but not on another with the same OS / VM, 
  it's probably something device-specific. One likely culprit is the 
number of DLLs loaded by the device - some vendors load more by default 
than others, and there's a limit on how many a device can use. Some 
documentation about this limit is here:
http://www-1.ibm.com/support/docview.wss?uid=swg21106951

If that's not it, you might want to pursue this with the device 
manufacturer. They have a fair bit of latitude when they put Windows 
Mobile on their devices, but usually react when they learn that an 
application works on all other devices, but not theirs.

      Andrew Jr.

======================================================================
IBM Phoenix Labs (OTI)
2929 North Central Avenue
Post Reply
Re: UnsatisfiedLinkError (126)
Wed, 07 Nov 2007 16:31:59 -070
Another thing to try might be file permissions. The error you're getting 
is ERROR_MOD_NOT_FOUND when running loadLibrary().

(The list of error numbers can be found at 
http://msdn2.microsoft.com/en-us/library/ms932980.aspx).

Could it be that the DLL you're trying to load is trying to load other 
DLLs, and they're not being found? Does your DLL rely on a Microsoft C 
runtime DLL that might not exist on your device?

	Andrew Jr.

======================================================================
IBM Phoenix Labs (OTI)
2929 North Central Avenue
Post Reply
Re: UnsatisfiedLinkError (126)
Fri, 9 Nov 2007 11:17:07 +0100
Dear Andrew,

Thanks for your help. The problem was the dependencies of the dll. It's 
nothing to do with the device, except that on of the devices had already 
stored the required dlls (and then it worked).

I suggest to use the "depends" tool to survive in the dll hell. This
tool 
let you open a dll file and displays the list of dependencies (required 
dlls).

Best regards,
Jaime
"Andrew Cornwall" <nobody.home@127.0.0.1> escribió en el mensaje

news:fgthqj$2t42o$1@news.boulder.ibm.com...
> Another thing to try might be file permissions. The error you're getting 
> is ERROR_MOD_NOT_FOUND when running loadLibrary().
>
> (The list of error numbers can be found at 
> http://msdn2.microsoft.com/en-us/library/ms932980.aspx).
>
> Could it be that the DLL you're trying to load is trying to load other 
> DLLs, and they're not being found? Does your DLL rely on a Microsoft C 
> runtime DLL that might not exist on your device?
>
> Andrew Jr.
>
> ======================================================================
> IBM Phoenix Labs (OTI)
> 2929 North Central Avenue
> Phoenix, Arizona, USA  85012 

Post Reply
about | contact