yairm210 / Unciv

Open-source Android/Desktop remake of Civ V
Mozilla Public License 2.0
8.5k stars 1.58k forks source link

Tutorials.json causing crash on mobile #10222

Closed SpacedOutChicken closed 1 year ago

SpacedOutChicken commented 1 year ago

I just added a Tutorials.json to The Star Wars Special Edition, and it's not causing any issues for desktop, but it appears to be crashing the mobile game.

Platform: Android Version: 4.8.7 (Build 915) Rulesets: [The Undead, Civ V - Vanilla, RekMOD, Wakanda for Unciv, Upside Down, Resource Recyclers, DeCiv Redux, Dreams of Steam, Alpha Frontier, Aliens have crashed on Earth, The North Pole, Outlaws of the Wastes, The Star Wars Special Edition, Smoky Skies Redux, Civ V - Gods & Kings, Plants vs UnZombies, The Star Wars 2022 06 19, Difficulty_Sandbox] Last Screen: com.unciv.ui.screens.LoadingScreen


Device Model: SM-G781V API Level: 33


Message:

java.lang.Exception: Could not parse json of file Tutorials.json
    at com.unciv.json.UncivJsonKt.fromJsonFile(UncivJson.kt:49)
    at com.unciv.json.UncivJsonKt.fromJsonFile(UncivJson.kt:39)
    at com.unciv.ui.screens.basescreen.TutorialController$Companion.loadTutorialsFromJson(TutorialController.kt:33)
    at com.unciv.ui.screens.basescreen.TutorialController$Companion.loadTutorialsFromJson$default(TutorialController.kt:30)
    at com.unciv.ui.screens.basescreen.TutorialController.<init>(TutorialController.kt:26)
    at com.unciv.ui.screens.basescreen.BaseScreen$tutorialController$2.invoke(BaseScreen.kt:43)
    at com.unciv.ui.screens.basescreen.BaseScreen$tutorialController$2.invoke(BaseScreen.kt:43)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at com.unciv.ui.screens.basescreen.BaseScreen.getTutorialController(BaseScreen.kt:43)
    at com.unciv.ui.screens.worldscreen.WorldScreen.<init>(WorldScreen.kt:189)
    at com.unciv.UncivGame$loadGame$2$3.invokeSuspend(UncivGame.kt:280)
    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 com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:467)
    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1593)
    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1287)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: mods/The Star Wars Special Edition/jsons/Tutorials.json (Internal)
    at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:83)
    at com.badlogic.gdx.files.FileHandle.length(FileHandle.java:641)
    at com.badlogic.gdx.backends.android.AndroidFileHandle.length(AndroidFileHandle.java:246)
    at com.badlogic.gdx.files.FileHandle.estimateLength(FileHandle.java:239)
    at com.badlogic.gdx.files.FileHandle.readString(FileHandle.java:204)
    at com.unciv.json.UncivJsonKt.fromJsonFile(UncivJson.kt:46)
    ... 23 more
Caused by: java.io.FileNotFoundException: mods/The Star Wars Special Edition/jsons/Tutorials.json
    at android.content.res.AssetManager.nativeOpenAsset(Native Method)
    at android.content.res.AssetManager.open(AssetManager.java:962)
    at android.content.res.AssetManager.open(AssetManager.java:939)
    at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:81)
    ... 28 more

Save Mods:

[The Star Wars Special Edition]

Save Data:

Show Saved Game ``` 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 ```
yairm210 commented 1 year ago

This is a problem with reading the file, not parsing it. chmod +r perhaps?

yairm210 commented 1 year ago

No, it says 'file not found', which is even odder...? QUESTION: Does your 'Tutorials.json' have a lower case T or some other variant of case-sensitive inequality to the base jsons? I vaguely remember that Android is strangely case-sensitive in filenames when desktop isn't

SpacedOutChicken commented 1 year ago

The casing appears to be correct, as far as I can tell.

yairm210 commented 1 year ago

Then I have no clue This problem repeats on the same device, I assume Where is the mod? So I can check it on mine

SpacedOutChicken commented 1 year ago

https://github.com/SpacedOutChicken/The-Star-Wars-Special-Edition

SomeTroglodyte commented 1 year ago

That's chuzpah reusing that logo...

SomeTroglodyte commented 1 year ago

Why nativeOpenAsset - sounds vaguely like accessing jar resources ... ?

        private fun tutorialFiles(includeMods: Boolean) = sequence<String> {
            yield("jsons/Tutorials.json")
            if (!includeMods) return@sequence
            val mods = UncivGame.Current.gameInfo?.ruleset?.mods ?: return@sequence
            val names = mods.asSequence().map { "mods/$it/jsons/Tutorials.json" }
            yieldAll(names.filter { Gdx.files.local(it).exists() })
        }

exists tests Gdx.files.local? should be in Gdx.files.internal, and loadTutorialsFromJson will load from there...

Who wrote that cr@p? Some moronic troglodyte in #8940 ... But still testing. But a macchiato first.

SpacedOutChicken commented 1 year ago

That's chuzpah reusing that logo...

I believe that since my use of the various Star Wars assets is non-commercial and unlikely to affect the market for official Star Wars products, I am within fair use rights to use Star Wars characters and assets, but if my doing so causes problems for Unciv, I can use different art.

SomeTroglodyte commented 1 year ago

causes problems for Unciv

No, that's the beauty about mods - they're independent and not bound in any way to our license, responsibility scope, or whatever...

SomeTroglodyte commented 1 year ago

.. breakpoint at TutorialController line 33 says Gdx.files.internal(path).exists() == false. So some naming problem - I looked with a file manager and it is at /data/data/com.unciv.app/files/mods/The Star Wars Special Edition/jsons/Tutorials.json - while Gdx.files.internal(path).file().absolutePath says /mods/The Star Wars Special Edition/jsons/Tutorials.json - huh???? Is Gdx.files.internal broken?

No, internal is meant to be jar/apk only, my bad. mods do need to load from local.

SomeTroglodyte commented 1 year ago

Screenie frum fon:

![Screenshot_20231003_Unciv](https://github.com/yairm210/Unciv/assets/63000004/5f5a6653-0006-463b-bede-6e38ca90dffb)

Star Wars assets

Hey, Kylo Ren has no Leader Portrait!