我有一个具有libs
如下文件夹结构的 android 项目:
/libs
/armeabi
libfoo.so
libbar.so
libmystuff.so
libgnustl_shared.so
/armeabi-v7a
libfoo.so
libbar.so
foo
并且bar
是第三方库,mystuff
是我自己的库,来自一个单独的 android JNI 项目,它需要gnustl_shared
来自同一个 JNI 项目。
当我在 Eclipse 中构建我的项目时,我可以使用 查看生成的 APK 的内容unzip -l
,它确实表明所有这些库文件都已包含在内。
但是,安装 APK 后,该/data/data/com.myproject/lib
文件夹不包含libgnustl_shared.so
,即使存在其他库。
这不可避免地会导致以下错误:
UnsatisfiedLinkError: Couldn't load gnustl_shared: findLibrary returned null
作为一个健全的检查,我跑了adb push ./libs/armeabi/libgnustl_shared.so /data/data/com.myproject/lib
,果然,应用程序按预期启动。
我在构建日志或 Eclipse 控制台中没有看到任何表明构建或安装应用程序存在任何问题的信息。
- 什么可能阻止
libgnustl_shared.so
我的应用程序安装? - 我在哪里可以了解安装 APK 时会发生什么?
如果我可以提供任何可能有帮助的具体信息,请在评论中告诉我。