12
在我的情况下,System.loadLibrary(…)找不到本机库
我想使用另一个 Android项目中的现有本机库,因此我只是将NDK构建的库(libcalculate.so)复制到我的新Android项目中。在我的新Android项目中,我创建了一个文件夹libs/armeabi/,并将libcalculate.so放在此处。有没有 JNI /文件夹。我的测试设备具有ARM体系结构。 在我的Java代码中,我通过以下方式加载库: static{ System.loadLibrary("calculate"); } 当我运行新的android项目时,出现错误: java.lang.UnsatisfiedLinkError: ... nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libcalculate.so" 因此,正如错误所述,复制的本机库不在/ verdor / lib或/ system / lib中,在我的情况下如何解决此问题? (我将apk包解压缩,在lib /下有libcalculate.so) ====更新===== 我还尝试在项目根目录下创建一个jni /文件夹,并在jni /下添加一个Android.mk文件。Android.mk的内容为: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libcalculate LOCAL_SRC_FILES := libcalculate.so include $(PREBUILT_SHARED_LIBRARY) 然后,在项目根目录下,我执行了ndk-build。此后,ndk-build生成armeabi /和armeabi-v7a /目录(文件夹中有libcalculate.so)。 然后,我运行maven成功构建项目。在最终的apk软件包中,有: lib/armeabi/libcalculate.so lib/armeabi-v7a/libcalculate.so 但是,当我运行我的应用程序时,会抛出相同的错误: …