我在 Android 应用程序中使用共享库 (.so) 时遇到了一些麻烦。我有3个项目:
本机代码项目 => 在 .so 库中构建 c++ 文件 我们称之为libNative.so
Android 库项目 => 调用本机代码。该项目的输出是一个 .jar 文件。我们称之为“ stack.jar ”
使用 android 库项目的 Android 应用程序示例。
在示例应用程序 (3) 库的属性选项卡中,我将 stack.jar 文件配置为与 .so 库链接。我的 .so 本机库很好地包含在生成的 APK 中。=> Eclipse 将它复制到“ lib /armeabi”文件夹中。
如果我在手机上启动 APK,我会收到以下错误:
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load libNative:
findLibrary returned null at
java.lang.Runtime.loadLibrary(Runtime.java:365) at
java.lang.System.loadLibrary(System.java:535)
我猜错误是 Eclipse 将 .so 库复制到 lib 文件夹而不是libs中,并且 System.loadLibrary 正在寻找路径libs/armeabi ...,对吗?或者我可能完全错了!
非常感谢你的帮助,
编辑:当我安装 APK 时,.so lib 很好地复制到data/data/mypackage/lib文件夹中。不过,我无法加载它。是因为加载发生在 .jar 文件中,而不是直接在应用程序示例中?