java - Stacktrace Java Eclipse 中的未知来源

标签 java eclipse stack-trace minecraft

我有一个非常烦人的问题,当我在 eclipse 中从我的源代码中导出一个 jar 文件时,我不会在堆栈跟踪中获得有关发生错误的源代码和行号的任何信息。我已经检查了项目的 ecplise 中的编译器设置,并设置了类文件生成部分中的所有选项。 我正在开发由服务器软件 bukkit 执行的 Minecraft 插件。我的源代码在 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。我希望你能帮我解决这个问题。 谢谢。

最佳答案

由于 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/找到源文件夹,并遵循此堆栈跟踪 (org/bukkit/plugin/java/JavaPluginLoader) 第 2 行中的路径,在该文件的第 363 行中,您将看到发生错误。

因为我不知道你正在为哪个版本的 Bukkit 编码,我无法帮助你过去,只能说该文件中的第 363 行是与你的问题相关的方法.如果您弄清楚该方法的作用,那就是 Bukkit 尝试对您的插件代码执行的操作但失败了。

关于java - Stacktrace Java Eclipse 中的未知来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003525/

相关文章:

java - 需要帮助更改 APK 文件中的 AndroidManifest.xml

debugging - VB6 中的运行时错误堆栈跟踪或位置

android - 用 logcat 检查过去的日志?

javascript - 为什么 setTimeout 延迟 0 仍然在 for 循环中的所有其他同步代码之后运行?

java - 使用 BlobKey 在 Google AppEngine 的 BlobStore 中查找 Blob

java - Android Studio 3.0.1 Gradle同步失败:原因:org.gradle.util.GFileUtils.unpack(Ljava/lang/Object;)Ljava/lang/Object;

JavaFX 在 UI 中的两个 Pane 之间切换

Eclipse - 如何将 Eclipse 元数据分发给团队成员

java - 更新 org.eclipse.jface.wizard.WizardDialog 的按钮

eclipse - Eclipse-运行/调试快捷键不起作用