Does your dll depend upon some other dll which cannot be found/loaded when you are running felix?
BJ Hargrave Senior Technical Staff Member, IBM OSGi Fellow and CTO of the OSGi Alliance [EMAIL PROTECTED] Office: +1 407 849 9117 Mobile: +1 386 848 3788 "Arnaud Quiblier" <[EMAIL PROTECTED]> 08/16/2006 07:03 AM Please respond to [email protected] To [email protected] cc Subject FELIX-26: Improve native library matching algorithm Well, I easyly found where the changes have to occured (including modifications of parsing header) and I will explain this when I will update the isuue. But before to begin, I want to write a (very) small bundle loading a native lib. And that's the problem ... I just can't !!! So I write a little class HelloWorldNative with a sole native method printNative() which call a C method compiled into HelloWorldNative.dll I test my sample out of Felix, and it works fine. So I bundle it. My activator create an instance of the HelloWorldNative class. This contains a static loading of the native library. I'm sure the library is loaded, cause when it's not present, the error is quite explicit. So the loading is OK, but it seems that's the VM checks all methods and verifies that's a correct implementation exists in the dll. And there's my bug ... It can't find the corresponding native method !!! The tracelog : [...] DEBUG: WIRE: 4.0 -> org.osgi.framework -> 0 Started. doWork. +++ new <<< new HelloWorldNative() call +++ loading... <<< before System.loadLibrary() DEBUG: R4SearchPolicyCore.findLibrary()... DEBUG: path: C:\Documents and Settings\Arnaud Quiblier\.felix\a\bundle4\version0.0\lib\HelloWorldNative.dll <<< dll's path is OK java.lang.UnsatisfiedLinkError: C:\Documents and Settings\Arnaud Quiblier\.felix\a\bundle4\version0.0\lib\HelloWorldNative.dll: La procédure spécifiée est introuvable <<< Sorry it's french ... but this is my problem ===== trace ===== at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1495) at java.lang.Runtime.loadLibrary0(Runtime.java:788) at java.lang.System.loadLibrary(System.java:834) at HelloWorldNative.<clinit>(HelloWorldNative.java:8) at Activator.doWork(Activator.java:26) at Activator.start(Activator.java:10) at org.apache.felix.framework.Felix._startBundle(Felix.java:1216) at org.apache.felix.framework.Felix.startBundle(Felix.java:1149) at org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java :768) at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java :220) at java.lang.Thread.run(Thread.java:534) --- loaded. --- new [...] Any idea is welcome ... -- </arnaud>

