调试

Logs是用于服务器的调试和找什么地方出错的一个重要组成部分。此页将展示一些基本的日志例子,并试着解释当遇到他们时,你可以做什么来解决您的问题

待办事项列表

当你遇到崩溃或警告,首先确认你 SpongeForge 或 SpongeVanilla 配置正确。这里有一个能帮到你的排查清单。如果你不知道如何获取所需的信息,看看 日志文件 页面。它解释了如何从你的日志文件获取所需的答案。

  1. Sponge 是否运行在 Java 8 上?

Sponge 需要 Java 8 ,使用 Java 7 或更旧的版本会导致崩溃。

  1. 使用了推荐的 Forge 版本?

通常 SpongeForge 可以在在更旧或更新的 Forge 上使用。然而我们仍强烈建议在推荐的Forge 版本上运行 Sponge。如果您遇到崩溃或者版本不匹配,先切换匹配的版本试一次。如果你不确定你需要哪个版本的 Forge,看一眼这里:安装 SpongeForge

  1. 有没有除了 SpongeForge 其他 Coremod?

一些已经安装的 coremod 改变了 Forge 使 SpongeForge 无法正确运行。如果你已经安装的 coremod 和 Sponge 崩溃,尝试将其删除,然后重试。请在 GitHub 或者 Sponge 论坛 汇报问题时附带所有不兼容的 Coremod 列表,这样工作人员才能够尽快解决这些问题。

  1. 你使用的每一个插件都是针对 Sponge 构建的吗?

Sponge API 有时会改变。当您在最近的Sponge版本上使用旧版本插件发生了崩溃时,请尝试 降级 Sponge 或与插件作者联系获得更新的插件。如果你在旧的Sponge版本和使用新版本插件发生了崩溃时,尝试首先更新Sponge。如果这不能解决问题,联系插件作者。

  1. 分离一个错误的插件

如果问题仍然存在,删除所有插件并重新逐一添加,并且每次都重启服务端。

如果你仍然不确定为什么崩溃,看一看你的 crashlog。下面列出了一些常见的崩溃和解决办法。

一般警告

常见的错误和 bug 来源是 SpongeForge 与 Sponge 之间或 SpongeForge 和插件之间的版本不匹配。首先我们来看看在Forge给出的一般警告︰

WARNING: coremods are present:
   SpongeForge (sponge-1.8-1521-2.1DEV-750.jar)
Contact their authors BEFORE contacting forge

这不是一个 bug 或错误,它只是Forge告诉你,Coremod (在这里︰ SpongeForge) 安装。Forge建议您在联系他们之前先联系Sponge开发人员。Don’t Worry。

常见异常

这里有一些常见的异常和异常发生的原因。

注解

如果你遇到崩溃、 错误或任何这里没有提及的问题,请前往 Sponge 论坛或者我们的 GitHub 反馈。这样还能帮助碰到同样问题的人。

SpongeForge 与 Forge 不匹配

[12:59:21] [main/ERROR] [mixin/]: @Mixin target net.minecraftforge.event.world.BlockEvent$NeighborNotifyEvent was not found mixins.forge.core.json:event.block.MixinEventNotifyNeighborBlock

这是一些常见的SpongeForge与Forge版本不匹配的崩溃,始终保持版本匹配!如果你不确定需要Forge的那个版本,或者你已经有了一个不可改变版本的 SpongeForge,看这里 安装 SpongeForge

其它常见错误

Caused by: java.lang.ClassNotFoundException: org.spongepowered.api.event.state.ServerStartedEvent
Caused by: java.lang.NullPointerException

第一个错误是 Class is missing ,第二个错误是 NullPointer Exception 表明你安装的插件缺少依赖元素,这通常发生在插件版本和Sponge版本不匹配的情况下

java.lang.AbstractMethodError: net.minecraft.entity.player.EntityPlayerMP.getTabList()Lorg/spongepowered/api/entity/living/player/tab/TabList;
at (...)

当一个插件试图调用尚未实现的方法时发生了 AbstractMethodError 。请检查是否你运行当前最新的 Sponge ,若不是,请更新。如果问题仍然存在,要么报告、 论坛或 IRC 上官方的 Issuetracker 。您也可以请求执行缺少的功能.。

[Server thread/INFO]: Starting minecraft server version 1.8
[Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoClassDefFoundError: org/spongepowered/api/event/game/state/GameStartingServerEvent

注解

读更多更全的崩溃报告?在这里 SpongeForge 575 crashlog with a plugin built against build 750

NoClassDefFoundError 表示这个 Class 不存在于 classpath 中,一般发生在 API 调整或者重构后,你更新了 Sponge 但你用的插件没有更新,或者反过来。请务必让插件版本和 Sponge 版本保持匹配!你可以去问插件作者啥时候更新,也可以自己升级或降级 SpongeForge 或 SpongeVanilla 来解决。