Skip to content

Crash on opening SVG image on Android #177942

@gnprice

Description

@gnprice

When I point an Image.network widget at a certain SVG image, on Android, the whole app crashes.

The stack trace reads:

[ERROR:flutter/fml/platform/android/jni_util.cc(206)] java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
	at io.flutter.embedding.engine.image.Metadata.isHeif(Metadata.java:55)
	at io.flutter.embedding.engine.image.Metadata.create(Metadata.java:38)
	at io.flutter.embedding.engine.image.FlutterImageDecoder.decodeImage(FlutterImageDecoder.java:46)
	at io.flutter.embedding.engine.FlutterJNI.decodeImage(FlutterJNI.java:551)

so this appears to be in the logic introduced in #176860 (/cc @mboetger @gmackall). The Flutter version is 3.38.0-1.0.pre-166 / 83382d1.

Detailed logs
2025-11-03 12:47:12.550 15029-15126 HWUI                    com.zulipmobile                      D  --- Failed to create image decoder with message 'unimplemented'
2025-11-03 12:47:12.553 15029-15126 flutter                 com.zulipmobile                      E  [ERROR:flutter/fml/platform/android/jni_util.cc(206)] java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
                                                                                                    	at io.flutter.embedding.engine.image.Metadata.isHeif(Metadata.java:55)
                                                                                                    	at io.flutter.embedding.engine.image.Metadata.create(Metadata.java:38)
                                                                                                    	at io.flutter.embedding.engine.image.FlutterImageDecoder.decodeImage(FlutterImageDecoder.java:46)
                                                                                                    	at io.flutter.embedding.engine.FlutterJNI.decodeImage(FlutterJNI.java:551)
2025-11-03 12:47:12.553 15029-15126 flutter                 com.zulipmobile                      A  [FATAL:flutter/shell/platform/android/android_image_generator.cc(113)] Check failed: fml::jni::CheckException(env). 
2025-11-03 12:47:12.553 15029-15126 libc                    com.zulipmobile                      A  Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 15126 (1.io), pid 15029 (com.zulipmobile)
2025-11-03 12:47:12.867 15771-15771 crash_dump64            pid-15771                            I  obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto
2025-11-03 12:47:12.870   961-961   tombstoned              tombstoned                           I  received crash request for pid 15126
2025-11-03 12:47:12.872 15771-15771 crash_dump64            pid-15771                            I  performing dump of process 15029 (target tid = 15126)
2025-11-03 12:47:13.181  1986-2554  ActivityManager         system_server                        D  freezing 8144 com.google.android.apps.tycho
2025-11-03 12:47:13.400 15771-15771 DEBUG                   crash_dump64                         A  *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Build fingerprint: 'google/shiba/shiba:16/BP3A.251005.004.B2/14331693:user/release-keys'
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Kernel Release: '6.1.134-android14-11-g66e758f7d0c0-ab13748739'
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Revision: 'MP1.0'
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  ABI: 'arm64'
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Timestamp: 2025-11-03 12:47:12.897640404-0800
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Process uptime: 190s
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Executable: /system/bin/app_process64
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Cmdline: com.zulipmobile
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  pid: 15029, tid: 15126, name: 1.io  >>> com.zulipmobile <<<
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  uid: 10500
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  esr: 0000000092000006 (Data Abort Exception 0x24)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  Abort message: '[FATAL:flutter/shell/platform/android/android_image_generator.cc(113)] Check failed: fml::jni::CheckException(env). '
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x0  0000000000000000  x1  0000000000003b16  x2  0000000000000006  x3  00000076542aef10
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x4  6d602e6c716e6573  x5  6d602e6c716e6573  x6  6d602e6c716e6573  x7  7f7f7f7f7f7f7f7f
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x8  00000000000000f0  x9  e79310a667cbb60e  x10 0000000000000001  x11 00000079aed08730
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x12 0000000000078007  x13 000000007fffffff  x14 0000000002dff36a  x15 0000052eca5ea062
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x16 00000079aed730f0  x17 00000079aed58d40  x18 0000007648a18000  x19 0000000000003ab5
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x20 0000000000003b16  x21 00000000ffffffff  x22 00000000ffffffff  x23 00000076542af880
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x24 0000000000000001  x25 00000076542af2a0  x26 b4000078b365db28  x27 b4000078b365db48
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      x28 0000000000000000  x29 00000076542aef90
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      lr  00000079aecf233c  sp  00000076542aef10  pc  00000079aecf2360  pst 0000000000001000
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A      esr 0000000092000006
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  15 total frames
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A  backtrace:
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #00 pc 0000000000076360  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: 6279f80eeba93a6e8a410cf52e4285b6)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #01 pc 00000000019fffe8  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #02 pc 00000000019fffa4  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #03 pc 0000000001eec5f4  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #04 pc 0000000001eec538  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #05 pc 0000000001a00ba4  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #06 pc 0000000001a06cd0  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #07 pc 0000000000016c48  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+1544) (BuildId: d847fa6c7a25945263c10ae337d79426)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #08 pc 0000000000025958  /system/lib64/libandroid.so (ALooper_pollOnce+88) (BuildId: c5f821dca6fe3c4e68ba9bac48d5d828)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #09 pc 0000000001a06c5c  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #10 pc 0000000001a00afc  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #11 pc 0000000001a04b00  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #12 pc 0000000001a04970  /data/app/~~BkC0INIlI-9TXvPO3oi2oA==/com.zulipmobile-6PHePBNkdnU0-J03DnAbIA==/base.apk!libflutter.so (offset 0x16ac000) (BuildId: 59fba48cf5727bc13d89c53b570ebd219c4335b3)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #13 pc 00000000000873e4  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*) (.__uniq.67847048707805468364044055584648682506)+180) (BuildId: 6279f80eeba93a6e8a410cf52e4285b6)
2025-11-03 12:47:13.401 15771-15771 DEBUG                   crash_dump64                         A        #14 pc 0000000000079c64  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 6279f80eeba93a6e8a410cf52e4285b6)
2025-11-03 12:47:13.419   961-961   tombstoned              tombstoned                           E  Tombstone written to: tombstone_11
2025-11-03 12:47:13.420  1986-15776 DropBoxManagerService   system_server                        I  add tag=data_app_native_crash isTagEnabled=true flags=0x2
2025-11-03 12:47:13.434  1986-15775 ActivityTaskManager     system_server                        W    Force finishing activity com.zulipmobile/com.zulip.flutter.MainActivity
2025-11-03 12:47:13.435  1986-15775 TransitionChain         system_server                        W  Combining AR.finish-force-crash into #2576(CLOSE|R|0x10) from finishTopCrash
2025-11-03 12:47:13.437  4531-4573  WindowManagerShell      com.android.systemui                 V  Transition requested (#2576): android.os.BinderProxy@265c98a TransitionRequestInfo { type = CLOSE, triggerTask = TaskInfo{userId=0 taskId=24225 effectiveUid=10500 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x30000000 cmp=com.zulipmobile/com.zulip.flutter.MainActivity } baseActivity=ComponentInfo{com.zulipmobile/com.zulip.flutter.MainActivity} topActivity=ComponentInfo{com.zulipmobile/com.zulip.flutter.MainActivity} origActivity=null realActivity=ComponentInfo{com.zulipmobile/com.zulip.flutter.MainActivity} numActivities=1 lastActiveTime=231813063 supportsMultiWindow=true resizeMode=1 isResizeable=true minWidth=-1 minHeight=-1 defaultMinSize=220 token=WCT{android.os.BinderProxy@5e6dc53} topActivityType=1 pictureInPictureParams=null shouldDockBigOverlays=false launchIntoPipHostTaskId=-1 lastParentTaskIdBeforePip=-1 displayCutoutSafeInsets=Rect(0, 0 - 0, 0) topActivityInfo=ActivityInfo{37b0bfb com.zulip.flutter.MainActivity} launchCookies=[] positionInParent=Point(0, 0) parentTaskId=-1 isFocused=true isVisible=true isVisibleRequested=true isTopActivityNoDisplay=false isSleeping=false locusId=null displayAreaFeatureId=1 isTopActivityTransparent=false isActivityStackTransparent=false lastNonFullscreenBounds=Rect(277, 699 - 803, 1779) capturedLink=null capturedLinkTimestamp=0 requestedVisibleTypes=-1 topActivityRequestOpenInBrowserEducationTimestamp=0 appCompatTaskInfo=AppCompatTaskInfo { topActivityInSizeCompat=false eligibleForLetterboxEducation= false isLetterboxEducationEnabled= false isLetterboxDoubleTapEnabled= false eligibleForUserAspectRatioButton= false topActivityBoundsLetterboxed= false isFromLetterboxDoubleTap= false topActivityLetterboxVerticalPosition= -1 topActivityLetterboxHorizontalPosition= -1 topActivityLetterboxWidth=-1 topActivityLetterboxHeight=-1 topActivityAppBounds=Rect(0, 0 - 1080, 2400) isUserFullscreenOverrideEnabled=false isSystemFullscreenOverrideEnabled=false hasMinAspectRatioOverride=false topActivityLetterboxBounds=null cameraCompatTaskInfo=CameraCompatTaskInfo { freeformCameraCompatMode=inactiveundefined} topNonResizableActivityAspectRatio=-1.0} topActivityMainWindowFrame=null isAppBubble=false}, pipChange = null, remoteTransition = null, displayChange = null, flags = 16, debugId = 2576 }
2025-11-03 12:47:13.438   789-913   libbinder.BpBinder      surfaceflinger                       I  onLastStrongRef automatically unlinking death recipients: 
2025-11-03 12:47:13.443  1986-2549  DropBoxManagerService   system_server                        I  add tag=SYSTEM_TOMBSTONE_PROTO_WITH_HEADERS isTagEnabled=true flags=0x4
2025-11-03 12:47:13.446  4531-4573  WindowManagerShell      com.android.systemui                 D  onKeepClearAreasChanged: restricted={}, unrestricted={}
2025-11-03 12:47:13.493  1986-6731  ActivityManager         system_server                        I  Process com.zulipmobile (pid 15029) has died: fg  TOP 
2025-11-03 12:47:13.495   937-937   powerhal-libperfmgr     and...ower-service.pixel-libperfmgr  W  sched_setattr failed for thread 15149, err=3
2025-11-03 12:47:13.495   937-937   powerhal-libperfmgr     and...ower-service.pixel-libperfmgr  W  sched_setattr failed for thread 15150, err=3
2025-11-03 12:47:13.495   937-937   powerhal-libperfmgr     and...ower-service.pixel-libperfmgr  W  sched_setattr failed for thread 15082, err=3
2025-11-03 12:47:13.495  1986-6362  ImeTracker              system_server                        I  com.zulipmobile:1101ac9c: onRequestHide at ORIGIN_SERVER reason HIDE_REMOVE_CLIENT fromUser false
2025-11-03 12:47:13.497  1461-1461  Zygote                  pid-1461                             I  Process 15029 exited due to signal 6 (Aborted)
2025-11-03 12:47:13.497  1986-6643  WindowManager           system_server                        I  WIN DEATH: Window{cce6b57 u0 com.zulipmobile/com.zulip.flutter.MainActivity}
Doctor output
$ flutter doctor -v
[✓] Flutter (Channel main, 3.38.0-1.0.pre-166, on Debian GNU/Linux 12 (bookworm)
    6.1.0-39-amd64, locale en_US.UTF-8) [1,066ms]
    • Flutter version 3.38.0-1.0.pre-166 on channel main at
      /home/greg/n/flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 83382d1bb9 (2 weeks ago), 2025-10-20 22:09:35 -0700
    • Engine revision 83382d1bb9
    • Dart version 3.11.0 (build 3.11.0-36.0.dev)
    • DevTools version 2.51.0
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop,
      enable-windows-desktop, enable-android, enable-ios, cli-animations,
      enable-native-assets, omit-legacy-version-file, enable-lldb-debugging

[!] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    [1,233ms]
    • Android SDK at /home/greg/Android/Sdk
    • Emulator version 35.5.10.0 (build_id 13402964) (CL:N/A)
    • Platform android-36, build-tools 35.0.0
    • Java binary at: /home/greg/.nix-profile/bin/java
      This JDK was found in the system PATH.
      To manually set the JDK path, use: `flutter config
      --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 17.0.5+8-nixos)
    ! Some Android licenses not accepted. To resolve this, run: flutter doctor
      --android-licenses

[✓] Chrome - develop for the web [9ms]
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop [245ms]
    • Debian clang version 14.0.6
    • cmake version 3.24.3
    • ninja version 1.11.1
    • pkg-config version 1.8.1
    • GL_EXT_framebuffer_blit: no
    • GL_EXT_texture_format_BGRA8888: no

[✓] Connected device (3 available) [236ms]
    • Pixel 8 (mobile) • 38101FDJH00L20 • android-arm64  • Android 16 (API 36)
    • Linux (desktop)  • linux          • linux-x64      • Debian GNU/Linux 12
      (bookworm) 6.1.0-39-amd64
    • Chrome (web)     • chrome         • web-javascript • Google Chrome
      140.0.7339.185

[✓] Network resources [176ms]
    • All expected network resources are available.

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: imagesLoading, displaying, rendering imagesplatform-androidAndroid applications specificallyteam-androidOwned by Android platform team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions