Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中使用第三方.so文件的正确方法_Android_Eclipse_Java Native Interface - Fatal编程技术网

android中使用第三方.so文件的正确方法

android中使用第三方.so文件的正确方法,android,eclipse,java-native-interface,Android,Eclipse,Java Native Interface,我被这个问题困住了,不知道自己做错了什么。请帮帮我 我正在做一个android项目,我必须使用2个本机库(.so)文件。这两个文件不是由我生成的,我只需要在我的项目中使用它们 我已将这些.so文件放在libs->armeabi文件夹下。在代码中,我在静态块中使用System.loadLibrary(“名称”)来加载这些库文件。完成此操作后,我清理项目并运行应用程序。我得到以下错误 java.lang.UnsatifiedLink错误: 我错过了什么。我还未选中“生成设置”中的前两个选项 注意:我

我被这个问题困住了,不知道自己做错了什么。请帮帮我

我正在做一个android项目,我必须使用2个本机库(.so)文件。这两个文件不是由我生成的,我只需要在我的项目中使用它们

我已将这些.so文件放在libs->armeabi文件夹下。在代码中,我在静态块中使用System.loadLibrary(“名称”)来加载这些库文件。完成此操作后,我清理项目并运行应用程序。我得到以下错误

java.lang.UnsatifiedLink错误:

我错过了什么。我还未选中“生成设置”中的前两个选项

注意:我不是在开发本机库。我只是在用它。它是在以前的版本中使用的,所以我非常确定.so文件的生成方式没有任何错误

我的最终要求是这样的, 我的android应用程序将有一个我正在开发的jar。jar中的方法将使用这些本机函数。主应用程序不会直接访问本机函数。我应该将.so文件放在jar中还是放在主应用程序中。我应该如何打包jar和.so文件

请帮助我,这是我第一次使用本机函数,我完全迷路了。链接到任何材料将是伟大的。

  • 设置NDK的路径 Eclipse->Window->Preferences->Android->NDK->设置NDK的路径

  • 右键单击Android项目并选择Android工具->添加本机支持

  • 对Android.mk文件进行更改以包含此.so文件

    本地路径:=$(调用我的目录)

    包含$(清除变量)
    本地_模块:=
    本地\u SRC\u文件:=
    本地_C_include:=$(本地_路径)/../jni/include
    包括$(预建共享库)
    

  • 清理项目并重新构建

    如果没有看到您尝试执行的代码,很难帮助您。可能会提供一些代码,说明在文件中调用方法的位置。因此,请澄清您使用的是Eclipse还是Android studio
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := <module_name>
    
    LOCAL_SRC_FILES := <.so file name>
    
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/../jni/include   
    
    include $(PREBUILT_SHARED_LIBRARY)