1

我目前正在编写一些 Java 应用程序,我必须使用我也编写的一些本机库 (C++)。JNI 由 SWIG 生成。大多数情况下它工作得非常好,但有时我会收到一个 EXCEPTION_ACCESS_VIOLATION 错误并且一切都崩溃了。奇怪的是,当这种情况发生时,我没有调用任何本机函数。

在错误日志中我发现

“有问题的框架:C [profiler.dll+0x4e0e4] Java_testpackage_testJNI_interface_1compute+0x375b8”

但我根本没有使用这个 compute() 函数。它是 SWIG 生成的 testJNI.java 和 interface.java 文件中的最后一个函数。当我从代码中删除这个函数(在 java 和 c++ 中)时,我仍然遇到同样的错误,但有另一个函数 - 也是最后一个。

你知道为什么会这样吗?

4

0 回答 0