可能是应用程序中 .so 文件的加载出现了问题。在 Android.mk 文件中添加 LOCAL_LDLIBS = -ldl。然后在代码中使用 dlopen() 和 dlsym() 将 .so 文件加载到主程序中。例如:
#include
typedef int (*add_func)(int, int);
void* handle = dlopen("libadd.so", RTLD_LAZY);
if (!handle) {
// 处理错误
return;
}
add_func my_add = (add_func)dlsym(handle, "add");
if (!my_add) {
// 处理错误
return;
}
int result = my_add(1, 2);
dlclose(handle);
注意:如果 .so 文件中没有定义 add() 函数,那么将会导致 dlsym() 返回 NULL。在使用 dlopen() 加载 .so 文件后,需要使用 dlclose() 释放资源。
上一篇:AndroidNDK-CameraPreview-GetandModifyImages
下一篇:AndroidNDK/JNI--sharedlibraryincompatiblewitharmelf_linux_eabi