Tôi có một đối tượng dùng chung, cái mà tôi sẽ gọi là 'libFoo.so', được biên dịch dựa vào NDK. Tôi có một dự án java (Tôi sẽ gọi nó là 'jarlib') mà làm cho sử dụng các đối tượng chia sẻ, bằng cách gọiLàm thế nào để tải một đối tượng được chia sẻ bản địa, trong một cái lọ, từ một ứng dụng Android?
System.loadLibrary("Foo");
Đó dự án java, tôi xuất khẩu như một cái bình, và sử dụng trong một ứng dụng Android. Nếu tôi nhận xét tất cả các bit về đối tượng được chia sẻ, jar hoạt động tốt và tôi có thể tương tác với nó một cách hoàn hảo.
Tôi có thể sử dụng jarlib, cùng với đối tượng được chia sẻ từ ứng dụng Android Unity với đối tượng được chia sẻ trong ./lib/armeabi/libFoo.so và tải nó lên tất cả đào.
Tôi đang cố gắng sử dụng jarlib và libFoo.so trong ứng dụng android không thống nhất của tôi và loadLibrary hoàn toàn từ chối tìm libFoo.so. Tôi đã thử đặt nó vì vậy nó sẽ được bao gồm trong gói ứng dụng của tôi trong ./lib, cũng như ./lib/armeabi, và không có gì có vẻ làm cho cuộc gọi tải nhìn thấy nó.
Tôi đã thử bao gồm libFoo.so trong ./lib hoặc ./lib/armeabi của jarlib, nhưng một khi tôi cố gắng xây dựng/chạy ứng dụng Android của tôi, tôi nói:
The library 'jarlib.jar' contains native libraries that will not run on the device.
The following libraries were found:
- libFoo.so
với điều này, nếu nó trong ./lib (không ./lib/armeabi)
Additionally some of those libraries will interfer with the installation of the application because of their location in lib/
lib/ is reserved for NDK libraries.
tôi không chắc chắn những gì kết hợp tôi đang mất tích, nhưng tôi chắc chắn rằng nó có thể được thực hiện, tôi chỉ dường như không thể tìm ra cách để làm điều đó!