将静态库导入Android项目

时间:2014-09-16 06:43:17

标签: android android-ndk static-libraries android.mk

我有一个静态库(libnative.a),我为arm架构生成了它。现在我想使用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文件非常熟悉。 在此先感谢:)

1 个答案:

答案 0 :(得分:3)

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