Skip to content

[Android][PlatformViews] Flutter 3.44.0 regression: TextureView/OpenGL PlatformView stays blank or freezes on Huawei Android 10 #188303

Closed

Description

@luskan

Steps to reproduce

git clone https://github.com/luskan/flutter_textureview_platform_view.git
cd flutter_textureview_platform_view
/path/to/flutter_3_44_0/bin/flutter run --release

Expected results

The PlatformView displays a continuously rotating OpenGL cube. The frame counter in the upper-left keeps increasing and is visible on screen.

// ...

After upgrading from Flutter 3.41.x to Flutter 3.44.x, an Android PlatformView that contains a native TextureView rendered with EGL/OpenGL no longer displays correctly on a Huawei Android 10 device.

The native renderer continues producing frames, but the Flutter-composited PlatformView area stays blank/white or freezes after a few frames. Flutter widgets outside the PlatformView continue to work.

This affects our production app, where a native OpenGL map is embedded into Flutter through Android PlatformViews.

I also tested with a locally instrumented Flutter 3.44.0 Android embedding around PR #181931. On this Huawei API 29 device, Flutter selects SurfaceTextureSurfaceProducer instead of ImageReaderSurfaceProducer:

hasAndroidHardwareBufferDefect=true sdk=29 manufacturer=HUAWEI brand=HUAWEI model=JNY-LX1 device=HWJNY
createSurfaceProducer lifecycle=resetInBackground useImageReader=false forceGlTextures=false
hasHardwareBufferDefect=true sdk=29
New SurfaceTextureSurfaceProducer ID: 0

The Java-side producer continues to look alive:

getSurface()
scheduleFrame()

The native OpenGL renderer also continues rendering frames, but the PlatformView output on screen remains blank/frozen. This suggests the native renderer itself is not blocked, the problem appears to be in the Flutter/Android PlatformView composition path.

Suspected relation to Huawei ImageReader change

This looks related to:

PR #181931 changed Huawei Android API 29 and below to fall back from ImageReaderSurfaceProducer to
SurfaceTextureSurfaceProducer.

That change fixed video playback on some Huawei devices, but on this Huawei JNY-LX1 it appears to break
PlatformViews that contain a native TextureView rendering with EGL/OpenGL.

I also tested Flutter 3.44.0 with the Huawei fallback from PR #181931 disabled, so this device no longer routes through
SurfaceTextureSurfaceProducer because of hasAndroidHardwareBufferDefect=true.

With that change disabled, the blank/frozen PlatformView problem no longer reproduced on the affected Huawei device.

Actual results

On the Huawei device, the PlatformView area is blank/white or freezes after a few frames. In some runs I saw 0 frames displayed, in others 4 or 5 frames, then the visible output stopped updating.

With Flutter 3.41.9 on the same device, the same repro works.

Reproduces on:

manufacturer: HUAWEI
brand: HUAWEI
model: JNY-LX1
device: HWJNY
Android: 10
Android SDK: 29
hardware: kirin810
platform: orlando

Flutter versions tested:

Working:

Flutter 3.41.9

Broken:

Flutter 3.44.0

Code sample

git clone https://github.com/luskan/flutter_textureview_platform_view.git

This app uses this path:

Flutter PlatformViewLink
 -> AndroidViewSurface
 -> PlatformViewsService.initSurfaceAndroidView
 -> Android PlatformView
 -> FrameLayout
 -> TextureView
 -> EGL/OpenGL ES renderer

The production app uses the same general architecture for its native OpenGL map view.

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

flutter_3442_huawei_platformview_freeze.log

Logs
[Paste your logs here]

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.44.2, on Ubuntu 24.04.4 LTS 6.17.0-35-generic, locale en_US.UTF-8) [68ms]
    • Flutter version 3.44.2 on channel stable at /home/marcin/libs/flutter_3_44_2
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c9a6c48423 (11 days ago), 2026-06-10 15:52:41 -0700
    • Engine revision 77e2e94772
    • Dart version 3.12.2
    • DevTools version 2.57.0
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android,
      enable-ios, cli-animations, enable-native-assets, enable-swift-package-manager, omit-legacy-version-file,
      enable-lldb-debugging, enable-uiscene-migration

[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [2.0s]
    • Android SDK at /home/marcin/Android/Sdk
    • Emulator version 36.2.12.0 (build_id 14214601) (CL:N/A)
    • Platform android-36, build-tools 36.1.0
    • ANDROID_HOME = /home/marcin/Android/Sdk
    • ANDROID_SDK_ROOT = /home/marcin/Android/Sdk
    • Java binary at: /home/marcin/.local/share/JetBrains/Toolbox/apps/android-studio/jbr/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.8+-14196175-b1038.72)
    • All Android licenses accepted.

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

[✓] Linux toolchain - develop for Linux desktop [1,396ms]
    • Ubuntu clang version 18.1.3 (1ubuntu1)
    • cmake version 4.1.2
    • ninja version 1.11.1
    • pkg-config version 1.8.1
    • OpenGL core renderer: Mesa Intel(R) HD Graphics 4600 (HSW GT2) (X11)
    • OpenGL core version: 4.6 (Core Profile) Mesa 25.2.8-0ubuntu0.24.04.2 (X11)
    • OpenGL core shading language version: 4.60 (X11)
    • OpenGL ES renderer: Mesa Intel(R) HD Graphics 4600 (HSW GT2) (X11)
    • OpenGL ES version: OpenGL ES 3.2 Mesa 25.2.8-0ubuntu0.24.04.2 (X11)
    • OpenGL ES shading language version: OpenGL ES GLSL ES 3.20 (X11)
    • GL_EXT_framebuffer_blit: yes (X11)
    • GL_EXT_texture_format_BGRA8888: yes (X11)

[✓] Connected device (3 available) [345ms]
    • JNY LX1 (mobile) • EPHUT20211000443 • android-arm64  • Android 10 (API 29)
    • Linux (desktop)  • linux            • linux-x64      • Ubuntu 24.04.4 LTS 6.17.0-35-generic
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 149.0.7827.155

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

• No issues found!

Activity

  1. added
    c: regressionIt was better in the past than it is now
    platform-androidAndroid applications specifically
    engineflutter/engine related. See also e: labels.
    team-androidOwned by Android platform team
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    on Jun 22, 2026
  2. mbcorona commented on Jun 22, 2026

    @mbcorona
    Member

    Thanks for the detailed report. Routing to team-android and linking #166481 / #181931 for context.

  3. added
    P2Important issues not at the top of the work list
    triaged-androidTriaged by Android platform team
    on Jun 23, 2026
  4. markoScB commented on Aug 5, 2026

    @markoScB

    I'm experiencing the exact same problem on a Huawei P30 Lite (MAR-LX1A) running Android 10. I noticed there are already pre-release versions of Flutter 3.47.x available, but the issue still persists. Any updates on this would be greatly appreciated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: regressionIt was better in the past than it is nowengineflutter/engine related. See also e: labels.found in release: 3.44Found to occur in 3.44has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-androidAndroid applications specificallyteam-androidOwned by Android platform teamtriaged-androidTriaged by Android platform team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions