我本质上是在尝试遵循此处描述的 SO 解决方案,但遇到了问题。
这基本上就是我在 JNI 库中所做的事情:
handle = dlopen("/data/data/lib/my.package/lib/myLibrary.so", RTLD_LAZY);
myFunctionName = (func)dlsym(handle, "main");
(*myFunctionName)(numberOfArgs, arguments);
问题是上述只有在
System.loadLibrary("myLibrary")
从调用 JNI 的相同 Java 代码调用。但这显然违背了通过 dlopen 加载库的目的。
我从 LocCat 得到的只是
A/libc(29472): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
出了什么问题?它与 myLibrary.so 的构建参数有关吗?