Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash with NullPointerException #10852

Closed
1 task done
Toreg87 opened this issue Jan 2, 2024 · 1 comment · Fixed by #10853
Closed
1 task done

Crash with NullPointerException #10852

Toreg87 opened this issue Jan 2, 2024 · 1 comment · Fixed by #10853
Labels

Comments

@Toreg87
Copy link

Toreg87 commented Jan 2, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Game Version

4.9.14

Describe the bug

I get a NullPointerException on the next turn of my game. This is the first time I observed this:

Platform: Android
Version: 4.9.14 (Build 950)
Rulesets: [Civ V - Vanilla, Civ V - Gods & Kings]
Last Screen: com.unciv.ui.screens.worldscreen.WorldScreen


Device Model: moto g14
API Level: 33
System Memory: 3815 MB
Available (used by Kernel): 937 MB
System Low Memory state: false
Java heap limit: 512 MB
Java heap free: 17 MB


Message:

java.lang.NullPointerException
	at com.unciv.logic.civilization.Civilization.getDiplomacyManager(Civilization.kt:312)
	at com.unciv.logic.civilization.Civilization.getDiplomacyManager(Civilization.kt:311)
	at com.unciv.logic.automation.civilization.NextTurnAutomation.valueCityStateAlliance$core(NextTurnAutomation.kt:155)
	at com.unciv.logic.automation.civilization.NextTurnAutomation.valueCityStateAlliance$core$default(NextTurnAutomation.kt:121)
	at com.unciv.logic.battle.Battle.automateCityConquer(Battle.kt:556)
	at com.unciv.logic.battle.Battle.conquerCity(Battle.kt:541)
	at com.unciv.logic.battle.Battle.attack(Battle.kt:146)
	at com.unciv.logic.battle.Battle.attackOrNuke(Battle.kt:88)
	at com.unciv.logic.battle.Battle.moveAndAttack(Battle.kt:43)
	at com.unciv.logic.automation.unit.BattleHelper.tryAttackNearbyEnemy(BattleHelper.kt:29)
	at com.unciv.logic.automation.unit.BattleHelper.tryAttackNearbyEnemy$default(BattleHelper.kt:15)
	at com.unciv.logic.automation.unit.UnitAutomation.tryAttacking(UnitAutomation.kt:243)
	at com.unciv.logic.automation.unit.UnitAutomation.automateUnitMoves(UnitAutomation.kt:209)
	at com.unciv.logic.automation.civilization.NextTurnAutomation.automateUnits(NextTurnAutomation.kt:348)
	at com.unciv.logic.automation.civilization.NextTurnAutomation.automateCivMoves(NextTurnAutomation.kt:68)
	at com.unciv.logic.civilization.managers.TurnManager.automateTurn(TurnManager.kt:338)
	at com.unciv.logic.GameInfo.nextTurn(GameInfo.kt:390)
	at com.unciv.ui.screens.worldscreen.WorldScreen$nextTurn$1.invokeSuspend(WorldScreen.kt:617)
	at com.unciv.ui.screens.worldscreen.WorldScreen$nextTurn$1.invoke(Unknown Source:8)
	at com.unciv.ui.screens.worldscreen.WorldScreen$nextTurn$1.invoke(Unknown Source:4)
	at com.unciv.utils.ConcurrencyKt$launchCrashHandling$1.invokeSuspend(Concurrency.kt:87)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
	at com.unciv.utils.CrashHandlingDispatcher$dispatch$1.invoke(Concurrency.kt:173)
	at com.unciv.utils.CrashHandlingDispatcher$dispatch$1.invoke(Concurrency.kt:173)
	at com.unciv.ui.crashhandling.CrashHandlingExtensionsKt$wrapCrashHandling$1.invoke(CrashHandlingExtensions.kt:17)
	at com.unciv.ui.crashhandling.CrashHandlingExtensionsKt$wrapCrashHandlingUnit$1.invoke(CrashHandlingExtensions.kt:33)
	at com.unciv.ui.crashhandling.CrashHandlingExtensionsKt$wrapCrashHandlingUnit$1.invoke(CrashHandlingExtensions.kt:33)
	at com.unciv.utils.CrashHandlingDispatcher.dispatch$lambda$0(Concurrency.kt:173)
	at com.unciv.utils.CrashHandlingDispatcher.$r8$lambda$GFMOlD6QMgmLfgwAvPAW33Ob6HE(Unknown Source:0)
	at com.unciv.utils.CrashHandlingDispatcher$$ExternalSyntheticLambda0.run(Unknown Source:2)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)

Save Mods:

[Civ V - Gods & Kings]

Steps to Reproduce

Go to the next turn on the attached save game.

Screenshots

No response

Link to save file

Frankreich (411 Runden).json

Operating System

Android

Additional Information

No response

@Toreg87 Toreg87 added the bug label Jan 2, 2024
@tuvus
Copy link
Collaborator

tuvus commented Jan 2, 2024

Ooohh, I think it is trying to determine whether to liberate a city-state it hasn't yet met. An interesting situation.
Thanks for reporting this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants