我有一个带有 jni 的 Java 项目,并且本机部分工作正常。我需要使用 dlopen() 从我的 jni c 文件中加载一个预构建的(使用 ndk 构建的).so 文件。
但是,我收到以下 dlerror:无法加载库:load_library[1093]:“system/lib/mytestlib.so”找不到库
JNI 代码:
void* handle = dlopen("system/lib/mytestlib.so", RTLD_LAZY);
if(handle == NULL)
{
char* er = dlerror();
__android_log_print(ANDROID_LOG_DEBUG, TAG, "dlerror: %s", er);
}
有趣的是,如果我尝试从手机的 /system/lib 文件夹中加载任何其他预构建的库,它会毫无错误地加载它。我什至可以用 fopen 打开我的 .so 没有问题,所以路径是正确的。它只发生在我的库中的事实真的让我很烦。提前感谢您的帮助。