У меня есть разделяемый объект, который я назову 'libFoo.so', скомпилированный в NDK. У меня есть java-проект (назову его 'jarlib'), который использует этот общий объект, вызывая
System.loadLibrary("Foo");
Этот java-проект я экспортирую как jar и использую в приложении android. Если я закомментирую все биты об общем объекте, jar работает нормально, и я могу прекрасно с ним взаимодействовать.
Я могу использовать jarlib вместе с общим объектом из приложения Unity android с общим объектом в ./lib/armeabi/libFoo.so, и он загружается без проблем.
Я пытаюсь использовать jarlib и libFoo.so в своем приложении для android, не относящемся к Unity, и loadLibrary категорически отказывается находить libFoo.so. Я пробовал поместить его так, чтобы он был включен в мой apk в ./lib, а также в ./lib/armeabi, но ничто не заставляет вызов загрузки увидеть его.
Я пробовал включить libFoo.so в ./lib или ./lib/armeabi jarlib, но когда я пытаюсь собрать/запустить свое android приложение, мне говорят:
The library 'jarlib.jar' contains native libraries that will not run on the device.
The following libraries were found:
- libFoo.so
с этим, если он находится в ./lib (не ./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.
Я не уверен, какой комбинации мне не хватает, но я уверен, что это можно сделать, я просто не могу понять, как это сделать!