버그
sonyoung1304 opened this issue · 6 comments
Is there an existing issue for this?
- I have searched the existing issues
Game Version
4.7.5
Describe the bug
Platform: Android
Version: 4.6.18-patch1 (Build 876)
Rulesets: [Civ V - Gods & Kings, Civ V - Vanilla, RekMOD, 5Hex Tileset]
Last Screen: com.unciv.ui.screens.newgamescreen.NewGameScreen
Device Model: SM-S901N
API Level: 34
Message:
java.lang.RuntimeException: Actor: TranslatedSelectBox
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:192)
at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:152)
at com.badlogic.gdx.scenes.scene2d.utils.Selection.fireChangeEvent(Selection.java:228)
at com.badlogic.gdx.scenes.scene2d.ui.SelectBox$1.fireChangeEvent(SelectBox.java:71)
at com.badlogic.gdx.scenes.scene2d.utils.Selection.choose(Selection.java:53)
at com.badlogic.gdx.scenes.scene2d.utils.ArraySelection.choose(ArraySelection.java:24)
at com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxScrollPane$1.clicked(SelectBox.java:448)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:88)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:71)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:355)
at com.unciv.ui.screens.basescreen.UncivStage.access$touchUp$s80204510(UncivStage.kt:17)
at com.unciv.ui.screens.basescreen.UncivStage$touchUp$1.invoke(UncivStage.kt:78)
at com.unciv.ui.screens.basescreen.UncivStage$touchUp$1.invoke(UncivStage.kt:78)
at com.unciv.ui.crashhandling.CrashHandlingExtensionsKt$wrapCrashHandling$1.invoke(CrashHandlingExtensions.kt:17)
at com.unciv.ui.screens.basescreen.UncivStage.touchUp(UncivStage.kt:78)
at com.badlogic.gdx.backends.android.DefaultAndroidInput.processEvents(DefaultAndroidInput.java:426)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:472)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1584)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1283)
Caused by: java.lang.IndexOutOfBoundsException: Index 1 out of bounds for length 1
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.util.Objects.checkIndex(Objects.java:359)
at java.util.ArrayList.get(ArrayList.java:434)
at com.unciv.models.ruleset.unique.UniqueType.getComplianceErrors(UniqueType.kt:1205)
at com.unciv.models.ruleset.RulesetValidator.checkUnique(RulesetValidator.kt:506)
at com.unciv.models.ruleset.RulesetValidator.checkUniques(RulesetValidator.kt:427)
at com.unciv.models.ruleset.RulesetValidator.getErrorList(RulesetValidator.kt:125)
at com.unciv.models.ruleset.Ruleset.checkModLinks(Ruleset.kt:488)
at com.unciv.models.ruleset.Ruleset.checkModLinks$default(Ruleset.kt:488)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addBaseRulesetSelectBox$1.invoke(GameOptionsTable.kt:374)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addBaseRulesetSelectBox$1.invoke(GameOptionsTable.kt:365)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addSelectBox$1.invoke(GameOptionsTable.kt:349)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addSelectBox$1.invoke(GameOptionsTable.kt:348)
at com.unciv.ui.components.extensions.OnChangeListener.changed(Scene2dExtensions.kt:341)
at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188)
... 18 more
Steps to Reproduce
Platform: Android
Version: 4.6.18-patch1 (Build 876)
Rulesets: [Civ V - Gods & Kings, Civ V - Vanilla, RekMOD, 5Hex Tileset]
Last Screen: com.unciv.ui.screens.newgamescreen.NewGameScreen
Device Model: SM-S901N
API Level: 34
Message:
java.lang.RuntimeException: Actor: TranslatedSelectBox
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:192)
at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:152)
at com.badlogic.gdx.scenes.scene2d.utils.Selection.fireChangeEvent(Selection.java:228)
at com.badlogic.gdx.scenes.scene2d.ui.SelectBox$1.fireChangeEvent(SelectBox.java:71)
at com.badlogic.gdx.scenes.scene2d.utils.Selection.choose(Selection.java:53)
at com.badlogic.gdx.scenes.scene2d.utils.ArraySelection.choose(ArraySelection.java:24)
at com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxScrollPane$1.clicked(SelectBox.java:448)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:88)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:71)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:355)
at com.unciv.ui.screens.basescreen.UncivStage.access$touchUp$s80204510(UncivStage.kt:17)
at com.unciv.ui.screens.basescreen.UncivStage$touchUp$1.invoke(UncivStage.kt:78)
at com.unciv.ui.screens.basescreen.UncivStage$touchUp$1.invoke(UncivStage.kt:78)
at com.unciv.ui.crashhandling.CrashHandlingExtensionsKt$wrapCrashHandling$1.invoke(CrashHandlingExtensions.kt:17)
at com.unciv.ui.screens.basescreen.UncivStage.touchUp(UncivStage.kt:78)
at com.badlogic.gdx.backends.android.DefaultAndroidInput.processEvents(DefaultAndroidInput.java:426)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:472)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1584)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1283)
Caused by: java.lang.IndexOutOfBoundsException: Index 1 out of bounds for length 1
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.util.Objects.checkIndex(Objects.java:359)
at java.util.ArrayList.get(ArrayList.java:434)
at com.unciv.models.ruleset.unique.UniqueType.getComplianceErrors(UniqueType.kt:1205)
at com.unciv.models.ruleset.RulesetValidator.checkUnique(RulesetValidator.kt:506)
at com.unciv.models.ruleset.RulesetValidator.checkUniques(RulesetValidator.kt:427)
at com.unciv.models.ruleset.RulesetValidator.getErrorList(RulesetValidator.kt:125)
at com.unciv.models.ruleset.Ruleset.checkModLinks(Ruleset.kt:488)
at com.unciv.models.ruleset.Ruleset.checkModLinks$default(Ruleset.kt:488)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addBaseRulesetSelectBox$1.invoke(GameOptionsTable.kt:374)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addBaseRulesetSelectBox$1.invoke(GameOptionsTable.kt:365)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addSelectBox$1.invoke(GameOptionsTable.kt:349)
at com.unciv.ui.screens.newgamescreen.GameOptionsTable$addSelectBox$1.invoke(GameOptionsTable.kt:348)
at com.unciv.ui.components.extensions.OnChangeListener.changed(Scene2dExtensions.kt:341)
at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188)
... 18 more
Screenshots
No response
Link to save file
No response
Operating System
Android
Additional Information
No response
This is really interesting, I can't reproduce but I think this is due to parameterTypeMap - in which case, we have some unique that has more params than its type, and yet is still being recognized as its type???
Can't imagine how this would happen, but we can add a specific exception to catch this pathological behaviour
Perhaps
@sonyoung1304 Please update and see if the bug persists
"버그" - again - it shouldn't be our burden to machine translate issue titles. No "Steps to Reproduce" = zero effort on the part of the poster => should garner zero effort on our part.
I disagree - a stacktrace indicates a problem that other players may encounter as well.
We're not trying to appease this specific player, we're trying to solve the general problem this issue indicates.
As a result, I'm fine with "best effort" - if OP doesn't update, I'm fine with closing, since we added a catch for the specific error indicated
No answer, no ability to repro, closing as unworkable