Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Java 使用JNI(在Mac上)在本机调用中对位置0x0的内存访问无效_Java_Java Native Interface_Shared Libraries_Native - Fatal编程技术网

Java 使用JNI(在Mac上)在本机调用中对位置0x0的内存访问无效

Java 使用JNI(在Mac上)在本机调用中对位置0x0的内存访问无效,java,java-native-interface,shared-libraries,native,Java,Java Native Interface,Shared Libraries,Native,我有两个eclipse插件间接调用一个本机框架:插件A加载libA.jnilib,插件B加载libB.jnilib,然后动态调用libA.jnilib和libB.jnilib 加载相同的框架并调用其中的函数 pluginA或pluginB可以单独工作,但当它们同时运行时,pluginB将在框架调用时崩溃,并出现错误-“位置0x0的内存访问无效”。(在本机代码中,我可以发现框架中的函数指针解析不为NULL,但调用它后失败)我们需要两个插件一起工作,但我们没有权利更改插件的代码,因为它是遗留代码。所

我有两个eclipse插件间接调用一个本机框架:插件A加载libA.jnilib,插件B加载libB.jnilib,然后动态调用libA.jnilib和libB.jnilib 加载相同的框架并调用其中的函数


pluginA或pluginB可以单独工作,但当它们同时运行时,pluginB将在框架调用时崩溃,并出现错误-“位置0x0的内存访问无效”。(在本机代码中,我可以发现框架中的函数指针解析不为NULL,但调用它后失败)我们需要两个插件一起工作,但我们没有权利更改插件的代码,因为它是遗留代码。所以我的问题是,从技术上讲,我有没有办法让pluginB成功调用框架?

你可以将库文件复制到另一个名称,然后在B中使用该名称。

这正是我的第一个想法。但是,即使我将x.framework改为y.framework,问题仍然存在。我认为这行不通。加载本机库时,绑定到库中的符号。此外,在相同的场景中,这两个插件在win上运行良好。复制dll本机库并将其加载到自己的插件中,两个dll都将加载到内存中,并且通过jni的本机调用成功