Skip to content

About

Project to reproduce flutter 3.44.0 regression: TextureView/OpenGL PlatformView freezes or stays blank on Huawei Android 10

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Flutter TextureView Platform View Repro

This is a small Android/Flutter repro app to reproduce flutter 3.44.0 regression: TextureView/OpenGL PlatformView freezes or stays blank on Huawei Android 10 (JNY-LX1)

How rendering is composed:

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

The native Android side renders a continuously rotating colored box into a TextureView. A yellow frame counter is drawn by the same OpenGL renderer in the upper-left corner of the native view. If the Android platform-view presentation path freezes, the box and counter should stop visually even though Android logs may still show frames.

video_player next to the platform view

The screen also plays a bundled H.264 clip (assets/test_video.mp4, 1280x720, baseline) with video_player below the platform view. video_player gets its surface from TextureRegistry.createSurfaceProducer(), the path that the Huawei fallback from flutter/flutter#181931 is meant for, while the platform view uses the same method internally. So one screen shows if an engine change fixes one path and breaks the other.

Result on Huawei JNY-LX1 / Android 10 with Flutter 3.47.5 (2026-10-21):

Embedding Platform view Video
stock 3.47.5 frozen on first frames plays
with flutter/flutter#193441 updates plays
process wide override to ImageReader updates fails, ACodec 0xfffffc0e

MainActivity logs (tag ReproProbe) if the embedding has the #193441 method, and calls the old process wide setter when an embedding has it.

Testing a locally built embedding

android/build.gradle.kts can swap the flutter embedding for one published to a local maven dir, without building the engine:

AAM_EMBEDDING_REPO=/path/to/maven AAM_EMBEDDING_SUFFIX=aam2 flutter build apk --release

The repo must hold io.flutter:flutter_embedding_release:1.0.0-<engine hash>-<suffix>. Without these variables the build uses the stock embedding.

About

Project to reproduce flutter 3.44.0 regression: TextureView/OpenGL PlatformView freezes or stays blank on Huawei Android 10

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages