Conversion = ')' at java.base/java.util.Formatter.parse(Unknown Source) at java....

2026年09月27日 03:39 9.73 秒 success

错误信息

``` === Zomboid Settings === Version: 42.20.4 b0bbce05d5 (Steam) Mode: SINGLE PLAYER [x3] Lua(Vanilla).addModOptionsPanel(MainOptions.lua:2817) Lua(Vanilla).create(MainOptions.lua:410) Lua(Vanilla).instantiate(MainScreen.lua:694) Lua(Vanilla).addToUIManager(ISUIElement.lua:1367) Lua(Vanilla).LoadMainScreenPanelInt(MainScreen.lua:1791) Lua(Vanilla).LoadMainScreenPanel(MainScreen.lua:1686) java.util.UnknownFormatConversionException: Conversion = ')' at java.base/java.util.Formatter.parse(Unknown Source) at java.base/java.util.Formatter.format(Unknown Source) at java.base/java.util.Formatter.format(Unknown Source) at java.base/java.lang.String.format(Unknown Source) at zombie.debug.DebugLogStream.printException(DebugLogStream.java:637) at zombie.debug.DebugType.printException(DebugType.java:300) at zombie.core.Translator.reportMissingArgumentsFromPastAbuse(Translator.java:515) at zombie.core.Translator.getText(Translator.java:502) at zombie.Lua.LuaManager$GlobalObject.getText(LuaManager.java:7279) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at se.krka.kahlua.integration.expose.caller.MethodCaller.call(MethodCaller.java:58) at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:194) at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:184) at se.krka.kahlua.vm.KahluaThread.callJava(KahluaThread.java:178) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:795) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:162) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1740) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1572) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:60) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:131) at zombie.Lua.Event.trigger(Event.java:55) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:248) at zombie.gameStates.IngameState.enter(IngameState.java:775) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:95) at zombie.GameWindow.logic(GameWindow.java:390) at zombie.GameWindow.frameStep(GameWindow.java:790) at zombie.GameWindow.mainThreadStep(GameWindow.java:567) at zombie.MainThread.mainLoop(MainThread.java:69) at java.base/java.lang.Thread.run(Unknown Source) ```

AI 解决方案

🌐 错误翻译


原文:java.util.UnknownFormatConversionException: Conversion = ')'
译文:java.util.UnknownFormatConversionException: 格式转换符为 ')'

🎯 原因分析


该错误发生在《丧尸末日》游戏的Lua脚本调用Java底层 String.format 时,传入的格式字符串中包含了不支持的格式转换符 ')'。具体位置在 Translator.reportMissingArgumentsFromPastAbuse 方法传递给 String.format 的格式化文本里,可能是 Lua 层未正确处理参数,导致 Java 层拼接时Format异常。

💡 解决方案


若你对相关 Lua 脚本有修改权限,请检查 MainOptions.lua 第 2817 行附近的格式化字符串,确保仅使用 Java String.format 支持的转换符(如 %s、%d、%f 等),删除或修正 ) 相关的非法格式符:
-- 示例:修正前(错误)
-- local text = string.format("Missing parameter)", value)

-- 修正后
local text = string.format("Missing parameter: %s", value)

若你仅作为玩家,请更新游戏/模组至官方最新版本,若问题持续可尝试禁用近期添加的第三方模组排查冲突。

🛡️ 预防措施


措施说明
规范格式化字符串编写格式化模板时,仅使用语言允许的合法格式符,避免将特殊符号(如 )、%)直接放入格式串
使用静态检查工具利用IDE(如IntelliJ IDEA、VSCode)的格式化字符串检查插件,编写时实时提示非法格式符