Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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
如何在c代码android中使用.so文件_Android_C_Java Native Interface - Fatal编程技术网

如何在c代码android中使用.so文件

如何在c代码android中使用.so文件,android,c,java-native-interface,Android,C,Java Native Interface,我有一个.so文件,我想为我的android应用程序加载并使用其中的函数。通常,要与Java代码一起使用,我可以使用System.loadLibrary()或System.load() 但是,我不想用Java代码加载它,我只想用C代码加载它来调用里面的函数。但是我不知道该怎么做。 特别是.so文件不包括在apk文件中。我想在apk中使用C代码并加载SD卡上的.so文件来加载库,然后获取与库中定义的符号相关联的地址 void* my_library = dlopen("libMine.so", R

我有一个.so文件,我想为我的android应用程序加载并使用其中的函数。通常,要与Java代码一起使用,我可以使用
System.loadLibrary()
或System.load()

但是,我不想用Java代码加载它,我只想用C代码加载它来调用里面的函数。但是我不知道该怎么做。 特别是.so文件不包括在apk文件中。我想在apk中使用C代码并加载SD卡上的.so文件来加载库,然后获取与库中定义的符号相关联的地址

void* my_library = dlopen("libMine.so", RTLD_LAZY);
if (my_library == NULL) 
{
   // report error ...
} 
else 
{
   // use the result in a call to dlsym
}

阅读和相关函数。你能给我举个例子吗?举例来说,我很容易理解这个问题。你真的读过链接的手册吗?你看过下面的例子了吗?现在,当您知道要使用哪些函数时,您是否尝试过搜索其他示例?是的。你的推荐信对我来说真的很好。这就是我要找的。很抱歉在仔细阅读之前先问一下。现在我明白了。顺便说一句,我想再问你一件事。.so文件是由ndk build生成的。是否可以完美地使用dlopen和dlsym?因为我是新手,所以我只是要求在深入研究之前确认一下