Estoy trabajando en un proyecto de Java que usa JNI. El JNI llama a una biblioteca personalizada que yo mismo escribí, digamos mylib.dll, y eso depende de una biblioteca de terceros, libsndfile-1.dll.
Cuando ejecuto mi programa, se bloquea
java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.
Busqué en este sitio (y en otros) y probé varias correcciones:
Ejecuté el andador de la dependencia. DW dio un par de advertencias - que dos bibliotecas requeridas por libsndfile, MPR.DLL y SHLWAPI.DLL, tenían "importaciones no resueltas" - pero las preguntas frecuentes de DW dijeron que estas advertencias podían ignorarse sin peligro.
Arreglé los nombres de los métodos en mylib.dll, como se sugiere aquí . El compilador había alterado los nombres de los métodos de alguna manera, pero agregué indicadores del enlazador y los nombres de los métodos dll ahora coinciden exactamente con los de mi archivo de encabezado jni.
Pongo todas estas DLL en el mismo directorio, el mismo directorio que el .jar que las llama, para asegurarme de que estén en la RUTA correcta.
No dados.
¿Alguien tiene alguna idea de lo que está pasando?
Estoy haciendo mi desarrollo en Visual Studio 2010 en una MacBook pro (a través de Parallels). Estoy haciendo mis pruebas en Windows XP en una computadora portátil Toshiba.