JsonDecodingException in SessionInstallManager when trying to install hidden app
- User launched fdroid, searched for 'app manager' installed.
- No confirm so it was using privext.
- Install didn't show open button (since app was hidden (CalyxOS app hiding feature)
- User realised they weren't using basic at that point.
- then launched basic debug nightly, and it crashed.
java.lang.RuntimeException: Error receiving broadcast Intent { act=org.fdroid.fdroid.installer.SessionInstallManager.install flg=0x10000010 pkg=org.fdroid.basic.debug (has extras) } in org.fdroid.fdroid.installer.SessionInstallManager@807919e
at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1800)
at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7884)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)\nCaused by: kotlinx.serialization.json.internal.JsonDecodingException: Expected start of the object '{', but had 'EOF' instead at path: $\nJSON input:
at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24)
at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32)
at kotlinx.serialization.json.internal.AbstractJsonLexer.fail(AbstractJsonLexer.kt:584)
at kotlinx.serialization.json.internal.AbstractJsonLexer.fail$default(AbstractJsonLexer.kt:582)
at kotlinx.serialization.json.internal.AbstractJsonLexer.fail$kotlinx_serialization_json(AbstractJsonLexer.kt:223)
at kotlinx.serialization.json.internal.AbstractJsonLexer.unexpectedToken(AbstractJsonLexer.kt:206)
at kotlinx.serialization.json.internal.StringJsonLexer.consumeNextToken(StringJsonLexer.kt:76)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.beginStructure(StreamingJsonDecoder.kt:97)
at org.fdroid.index.v2.FileV2$$serializer.deserialize(IndexV2.kt:47)
at org.fdroid.index.v2.FileV2$$serializer.deserialize(IndexV2.kt:47)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
at kotlinx.serialization.internal.NullableSerializer.deserialize(NullableSerializer.kt:30)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)
at kotlinx.serialization.json.Json.decodeFromString(Json.kt:97)
at org.fdroid.index.v2.FileV2$Companion.deserialize(IndexV2.kt:123)
at org.fdroid.index.v2.FileV2.deserialize(IndexV2.kt:0)
at org.fdroid.fdroid.data.App.<init>(App.java:782)
at org.fdroid.fdroid.data.App$1.createFromParcel(App.java:798)
at org.fdroid.fdroid.data.App$1.createFromParcel(App.java:795)
at android.os.Parcel.readParcelableInternal(Parcel.java:4816)
at android.os.Parcel.readValue(Parcel.java:4567)
at android.os.Parcel.readValue(Parcel.java:4347)
at android.os.Parcel.-$$Nest$mreadValue(Unknown Source:0)
at android.os.Parcel$LazyValue.apply(Parcel.java:4445)
at android.os.Parcel$LazyValue.apply(Parcel.java:4404)
at android.os.BaseBundle.getValueAt(BaseBundle.java:394)
at android.os.BaseBundle.getValue(BaseBundle.java:374)
at android.os.BaseBundle.getValue(BaseBundle.java:357)
at android.os.BaseBundle.getValue(BaseBundle.java:350)
at android.os.Bundle.getParcelable(Bundle.java:913)
at org.fdroid.fdroid.installer.SessionInstallManager.onInstallReceived(SessionInstallManager.java:152)
at org.fdroid.fdroid.installer.SessionInstallManager.onReceive(SessionInstallManager.java:139)
at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1790)
... 9 more