yairm210/Unciv

버그

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

@yairm210 possible duplicate #9468. Their logs implies out of date version (4.6.18-patch1 crashlog, 4.7.5 issue)

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