Estou trabalhando em um projeto Java que usa o JNI. O JNI chama uma biblioteca personalizada que eu mesmo escrevi, digamos mylib.dll, e que depende de uma biblioteca de terceiros, libsndfile-1.dll.
Quando executo meu programa, ele trava com
java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.
Pesquisei neste site (e em outros) e tentei várias soluções:
Corri o dependency walker. O DW deu alguns avisos - que duas bibliotecas exigidas pelo libsndfile, MPR.DLL e SHLWAPI.DLL, tinham "importações não resolvidas" - mas o DW FAQ disse que esses avisos poderiam ser ignorados com segurança.
Corrigi os nomes dos métodos em mylib.dll, conforme sugerido aqui . Os nomes dos métodos foram de alguma forma mutilados pelo compilador, mas adicionei sinalizadores de linker e os nomes dos métodos dll agora correspondem exatamente aos do meu arquivo de cabeçalho jni.
Coloquei todas essas DLLs no mesmo diretório - o mesmo diretório do .jar que as chama - para garantir que estejam no PATH certo.
Sem dados.
Alguém tem ideia do que está acontecendo?
Estou fazendo meu desenvolvimento no Visual Studio 2010 em um MacBook Pro (via Parallels). Estou fazendo meus testes no Windows XP em um laptop toshiba.