mastodon / mastodon-android

Official Android app for Mastodon
https://app.joinmastodon.org/android
GNU General Public License v3.0
1.63k stars 251 forks source link

Instance information page crashes if thumbnail is null #835

Closed uwueviee closed 1 month ago

uwueviee commented 1 month ago

V1::instance indicates that the thumbnail field should be nullable, however, this causes Mastodon to crash as it fails to parse the null as a URI, setting this to be a value fixes the issue.

Occurs on Mastodon for Android v2.5.0 (93) downloaded from the Google Play Store on a Pixel 7 Pro running Android 14 (AP1A.240405.002.B1)

Logcat output of the crash:

FATAL EXCEPTION: main
Process: org.joinmastodon.android, PID: 4656
java.lang.NullPointerException: uriString
    at android.net.Uri$StringUri.<init>(Uri.java:504)
    at android.net.Uri$StringUri.<init>(Unknown Source:0)
    at android.net.Uri.parse(Uri.java:466)
    at k0.b.<init>(SourceFile:11)
    at k1.a3.g0(SourceFile:127)
    at g0.i.onCreateView(SourceFile:24)
    at android.app.Fragment.performCreateView(Fragment.java:2510)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1303)
    at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2431)
    at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2210)
    at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2166)
    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2067)
    at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:822)
    at k1.f3$b$a.onPreDraw(SourceFile:9)
    at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1176)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3985)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2659)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9789)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1399)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1408)
    at android.view.Choreographer.doCallbacks(Choreographer.java:1008)
    at android.view.Choreographer.doFrame(Choreographer.java:938)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1382)
    at android.os.Handler.handleCallback(Handler.java:959)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8501)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)