Tôi đang làm việc trên một dự án Java sử dụng JNI. JNI gọi một thư viện tùy chỉnh mà tôi đã tự viết, giả sử mylib.dll, và điều đó phụ thuộc vào thư viện của bên thứ 3, libsndfile-1.dll.
Khi tôi chạy chương trình của mình, nó bị lỗi
java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.
Tôi đã tìm kiếm trang web này (và những trang khác) và tôi đã thử một số bản sửa lỗi:
Tôi chạy bộ đi bộ phụ thuộc. DW đã đưa ra một vài cảnh báo - rằng hai thư viện được yêu cầu bởi libsndfile, MPR.DLL và SHLWAPI.DLL, có "các lần nhập chưa được giải quyết" - nhưng DW FAQ nói rằng những cảnh báo này có thể được bỏ qua một cách an toàn.
Tôi đã sửa các tên phương thức trong mylib.dll, như được đề xuất ở đây . Các tên phương thức bằng cách nào đó đã bị trình biên dịch hiểu nhầm, nhưng tôi đã thêm cờ trình liên kết và tên phương thức dll giờ khớp chính xác với tên trong tệp tiêu đề jni của tôi.
Tôi đặt tất cả các DLL này trong cùng một thư mục - cùng một thư mục với .jar gọi chúng - để đảm bảo rằng chúng ở đúng PATH.
Không có con xúc xắc.
Có ai có bất kỳ ý tưởng những gì đang xảy ra?
Tôi đang phát triển Visual Studio 2010 trên MacBook pro (thông qua Parallels). Tôi đang thực hiện thử nghiệm của mình trong Windows XP trên máy tính xách tay toshiba.