[英]Calling function from .so file created in android in linux C++ code
我有.so文件,我从apk中获取。 使用命令nm -D libnative-lib.so,我获得了功能列表。 我需要调用名为Java_com_example_nativelib_utils_Constants_getStringFromJNI
函数。 我写了下面的代码:
#include <stddef.h>
#include <dlfcn.h>
#include <stdio.h>
int init_library() {
void* hdl = dlopen("./libnative-lib.so", RTLD_LAZY);
if(hdl == 0)
return 0;
else return 1;
}
int main() {
printf("%s\n", (init_library() ? "OK": "ERROR"));
}
并制作文件:
all: exe
exe: main.c
gcc main.c -fPIC -ldl -o main
但是程序的结果始终是“ ERROR”。 我从x86和armeabi-v7a架构(其他不存在)中尝试了libnative-lib.so。 如何从中加载库并调用函数? C ++或C不在乎。
在非Android项目中无法使用android .so文件。 类似的问题在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.