1

我有一个为 arm 架构生成的静态库(libnative.a)。现在我想使用 NDK 在我的 android 应用程序中使用该库。我的 Android.mk 有

LOCAL_STATIC_LIBRARIES := libnative

我还尝试使用 System.loadlibrary("path/to/the/libnative.a"); 在 java 中加载库。

但我得到错误:

java.lang.UnsatisfiedLinkError: Couldn't load libnative.a from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.testsdk-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.testsdk-2, /system/lib]]]: findLibrary returned null

请帮助我在 android 应用程序中加载静态库。我已经使用过共享库。我非常熟悉加载 .so 文件。提前致谢 :)

4

1 回答 1

3

您无法加载静态库 - 只有共享库实际上包含在 APK 中并安装在手机上。当您在构建共享库时(通过LOCAL_STATIC_LIBRARIES := libnative在您的 Android.mk 中使用)包含静态库时,它实际上会链接到共享库中,以便共享库包含静态库中的所有代码。因此,您只需要使用System.loadLibrary().

于 2014-09-16T09:30:46.567 回答