【发布时间】:2024-01-21 21:57:01
【问题描述】:
我有一个共享对象,我称之为“libFoo.so”,它是针对 NDK 编译的。我有一个使用该共享对象的 java 项目(我将其称为“jarlib”),通过调用
System.loadLibrary("Foo");
那个 java 项目,我导出为 jar,并在 android 应用程序中使用。如果我注释掉关于共享对象的所有内容,jar 就可以正常工作,并且我可以完美地与之交互。
我可以使用 jarlib,以及来自 Unity android 应用程序的共享对象以及 ./lib/armeabi/libFoo.so 中的共享对象,它会将其全部加载。
我正在尝试在我的非统一 android 应用程序中使用 jarlib 和 libFoo.so,而 loadLibrary 绝对拒绝找到 libFoo.so。我已经尝试将其放置在我的 ./lib 以及 ./lib/armeabi 中的 apk 中,但似乎没有任何东西可以让 load 调用看到它。
我尝试将 libFoo.so 包含在 jarlib 的 ./lib 或 ./lib/armeabi 中,但是一旦我尝试构建/运行我的 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.
我不确定我缺少什么组合,但我确信它可以做到,我似乎无法弄清楚如何做到这一点!
【问题讨论】: