JNI代码中的致命错误 - 可能是在JDIC库中

时间:2009-08-12 08:10:49

标签: java-native-interface java jdic

我使用Java编码的桌面应用程序来跟踪我的项目时间。

我用它直到IT在我的电台上进行了新的设置。现在我无法启动此应用程序。

当我启动它时,我收到了一个日志文件:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d8fd8f5, pid=616, tid=4072
#
# JRE version: 6.0_15-b03
# Java VM: Java HotSpot(TM) Client VM (14.1-b02 mixed mode, sharing windows-x86 )
# Problematic frame:
# V  [jvm.dll+0xfd8f5]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

经过一段时间的谷歌搜索后,我再次使用Sun制作的Troubleshooting guide并再次使用-Xcheck:jni参数启动应用程序。结果是我收到了这个新错误:

FATAL ERROR in native method: Wrong object class or methodID passed to JNI call
        at org.jdesktop.jdic.tray.internal.impl.DisplayThread.initTray(Native Method)
        at org.jdesktop.jdic.tray.internal.impl.DisplayThread.run(Unknown Source)
        - locked <0x2801e4e0> (a java.lang.Class for org.jdesktop.jdic.tray.internal.impl.DisplayThread)

我尝试下载JDIC的最新版本,但即使启动他们自己的样本也会给我带来同样的错误。我想问题是错误消息中的已锁定,但我不知道从现在开始要去哪里......

你能帮帮我吗?

我的信箱:

  • Windows XP SP3

  • Java 6(1.6.0_15)

更新

现在已经解决了,我不知道怎么回事。从昨天起,我唯一可以告诉的是,我至少重启了一次,因为我没有安装新的java设置或其他任何东西......如果有人面临同样的问题,请抱歉。

2 个答案:

答案 0 :(得分:0)

JNI的快乐啊!

我认为应该尝试使用的本机代码库的API与Jav​​a端不兼容。我的猜测是,IT人员所做的更改包括更改库/ DLL / Java应用程序尝试使用的任何内容。

答案 1 :(得分:0)

看看你是否可以调用不带问题参数的函数。

您可能会发现界面不再与库匹配。例如,如果您使用SWIG生成接口文件,则不同版本的SWIG会生成不同数量的参数。

不幸的是,java接口代码和库代码不匹配不会产生错误,它只会崩溃。