Stacktrace Java Eclipse中的未知来源

时间:2013-04-14 19:44:51

标签: java eclipse stack-trace minecraft

我有一个非常讨厌的问题,当在eclipse中从我的源代码中导出jar文件时,我将在堆栈跟踪中没有关于发生错误的源和行号的信息。我已经检查了项目的ecplise中的编译器设置,并设置了类文件生成部分中的所有选项。 我正在为Minecraft开发插件,由服务器软件bukkit执行。我的源代码在de.celestialcraft.agentestate包中。在出现异常时,我得到了这样一个堆栈跟踪:

23:43:57 [INFO] com.sk89q.worldedit.CuboidClipboard@fb44f99
23:43:57 [SEVERE] Could not pass event BlockDamageEvent to AgentEstate v2.1alpha

org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:363)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:462)
    at de.celestialcraft.AgentEstate.AgentEstateBlockListener.onBlockBreak(U
nknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:361)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:462)
    at ir.b(ItemInWorldManager.java:393)
    at ir.a(ItemInWorldManager.java:200)
    at iv.a(NetServerHandler.java:782)
    at ei.a(Packet14BlockDig.java:67)
    at cg.b(TcpConnection.java:467)
    at iv.d(NetServerHandler.java:220)
    at iw.b(NetworkListenThread.java:57)
    at ht.b(DedicatedServerListenThread.java:34)
    at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:981)
    at ho.r(DedicatedServer.java:309)
    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:857)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:744)
    at fy.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
    at com.sk89q.worldedit.schematic.MCEditSchematicFormat.save(Unknown Sour
ce)
    at de.celestialcraft.AgentEstate.Estate.saveState(Unknown Source)
    at de.celestialcraft.AgentEstate.Estate.create(Unknown Source)
    at de.celestialcraft.AgentEstate.Estate.create(Unknown Source)
    at de.celestialcraft.AgentEstate.AgentEstateBlockListener.onBlockDamage(
Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:361)
    ... 25 more

我已将构建路径设置中的jdk路径设置为项目的lib。我希望你能帮我解决这个问题。 谢谢。

2 个答案:

答案 0 :(得分:0)

您的项目应标记为启用项目特定设置,并在Java Compiler上 - >类文件生成,选项添加行号...应该没有标记。

答案 1 :(得分:0)

由于Bukkit是一个API,当您编写bukkit插件代码时,您创建的代码块只有Bukkit知道如何处理所述代码。为了找出导致此处发布的错误的原因,您需要查看顶部行,如果StackTrace中的“at”行,并在Github上的Bukkit源文件中找到它。例如,在此堆栈跟踪中,您将其置于顶部:

org.bukkit.event.EventException
  at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)

你可以看到第363行的JavaPluginLoader中有一个错误导致了Bukkit EventException。为了找到确切的内容,你应该访问https://github.com/Bukkit/Bukkit/releases并下载相应的源版本。您编写的MC版本。在这个zip文件中,您可以在src / main / java /找到源文件夹,并按照此stacktrace(org / bukkit / plugin / java / JavaPluginLoader)的第2行中的路径,在该文件的第363行中,您将看到发生了错误。

由于我不知道您编写的Bukkit版本是什么,我不能帮助您解决此问题,除非说该文件中的哪个方法有363行作为其中的一部分是与您的问题相关的方法。如果你弄清楚那个方法做了什么,那就是Bukkit尝试用你的插件代码做的事情并且失败了。

相关问题