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 when moving spy #12893

Open
1 task done
sls1005 opened this issue Feb 1, 2025 · 1 comment
Open
1 task done

Crash when moving spy #12893

sls1005 opened this issue Feb 1, 2025 · 1 comment
Labels

Comments

@sls1005
Copy link
Contributor

sls1005 commented Feb 1, 2025

Is there an existing issue for this?

  • I have searched the existing issues

Game Version

4.15.5-patch2

Describe the bug

Crash when moving a spy to a city. This only happens if I move it by long-pressing the city in the map, and does not happen when moving it by using the city list, nor does it happen in previous versions. The city can be owned, friendly or enemy.

Steps to Reproduce

  1. Enter the spy screen.
  2. Long press the 'move' button. This opens the world map.
  3. Long press a city.
  4. Click the button that looks like ->. This again opens the spy screen.
  5. Click the 'close' button
  6. See error.

Note that this bug can only be produced in this way and not by using the city list.

Operating System

Android 14

Additional Information

Last Screen: com.unciv.ui.screens.worldscreen.WorldScreen


Device Model: SM-M336B
API Level: 34
System Memory: 5389 MB
Available (used by Kernel): 1529 MB
System Low Memory state: false
Java heap limit: 512 MB
Java heap free: 4 MB


Message:

java.lang.NullPointerException
	at com.unciv.ui.screens.worldscreen.unit.presenter.SpyPresenter.updateWhenNeeded(SpyPresenter.kt:21)
	at com.unciv.ui.screens.worldscreen.unit.UnitTable.update(UnitTable.kt:185)
	at com.unciv.ui.screens.worldscreen.WorldScreen.update(WorldScreen.kt:365)
	at com.unciv.ui.screens.worldscreen.WorldScreen.render(WorldScreen.kt:727)
	at com.badlogic.gdx.Game.render(Game.java:48)
	at com.unciv.UncivGame.access$render$s2211858(UncivGame.kt:60)
	at com.unciv.UncivGame$wrappedCrashHandlingRender$1.invoke(UncivGame.kt:83)
	at com.unciv.UncivGame$wrappedCrashHandlingRender$1.invoke(UncivGame.kt:83)
	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.UncivGame.render(UncivGame.kt:412)
	at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:501)
	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1584)
	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1283)

Save Mods:

[Civ V - Gods & Kings]

Save Data:

Show Saved Game
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
@sls1005 sls1005 added the bug label Feb 1, 2025
@yairm210
Copy link
Owner

yairm210 commented Feb 1, 2025

@sulai It looks like we need to 'deselect' the spy on update(), since SpyPresenter.updateWhenNeeded() assumes there is always a selected spy

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

No branches or pull requests

2 participants