我正在开发一个Android项目,我必须使用2个本机库(.so)文件。这两个文件不是由我生成的,我只需要在我的项目中使用它们。
我已将这些.so文件放在libs-> armeabi文件夹下。在代码中,我使用静态块内的System.loadLibrary(" name")来加载这些库文件。执行此操作后,我清理项目并运行应用程序。我收到以下错误
java.lang.UnsatisfiedLinkError:
我缺少什么。我也取消了构建设置中的前两个选项。
注意:我没有开发本机库。我只是用它。它在以前的版本中使用,所以我很确定.so文件的生成方式没有任何问题。
PS:我的最终要求是这样的, 我的android应用程序将有一个我正在开发的jar。 jar中的方法将使用这些本机函数。主应用程序不会直接访问本机函数。我应该将.so文件放在jar中还是应该放在主应用程序中。我应该如何打包jar和.so文件。请帮帮我,这是我第一次使用原生功能,我完全迷失了。任何材料的链接都会很棒。
答案 0 :(得分:1)
将PATH设置为您的NDK Eclipse - >窗口 - >偏好 - > Android - > NDK - >设置NDK的路径
右键点击Android项目,然后选择Android工具 - >添加原生支持。
更改Android.mk文件以包含此.so文件
LOCAL_PATH:= $(致电my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := <module_name>
LOCAL_SRC_FILES := <.so file name>
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../jni/include
include $(PREBUILT_SHARED_LIBRARY)
清理项目并重新构建