我有一个静态库(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文件非常熟悉。 在此先感谢:)
答案 0 :(得分:3)
您无法加载静态库 - 只有共享库实际上包含在APK中并安装在手机上。当您在构建共享库时包含静态库(在Android.mk中使用LOCAL_STATIC_LIBRARIES := libnative
)时,它实际上会链接到共享库,以便共享库包含静态库中的所有代码。因此,您只需使用System.loadLibrary()
加载共享库。