这是indexloc提供的服务,不要输入任何密码
Skip to content

[3.32.7][Impeller][/e/OS][webview_flutter_android] Webview fails to render on the Fairphone 3 running /e/OS 3.0.4 #172622

@e-adrien

Description

@e-adrien

Steps to reproduce

  1. Obtain a Fairphone 3 running /e/OS 3.0.4.
  2. Clone the repository and build the app. I tested with Flutter 3.32.7
  3. Run the app on the device

Expected results

The webview should render properly on the classic Android flavour and the /e/OS flavour.

Actual results

The webview renders properly on the Fairphone 3 with the classic Android flavour, but it fails to render on the Fairphone 3 running /e/OS 3.0.4.

I couldn't try with other devices running /e/OS so I don't know if it is just this combination or if it affects more devices running /e/OS.

Code sample

Code sample

I've just cloned the example available in the webview_flutter package :
webview_flutter_example

Screenshots or Video

Screenshots / Video demonstration

Screenshot of the demo

Image

Screenshot of the demo with Impeller disabled

Added code in android\app\src\main\AndroidManifest.xml :

<meta-data
    android:name="io.flutter.embedding.android.EnableImpeller"
    android:value="false" />
Image

Logs

Logs
Launching lib\main.dart on FP3 in debug mode...
√ Built build\app\outputs\flutter-apk\app-debug.apk
I/flutter_example( 4450): Late-enabling -Xcheck:jni
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getTouchX()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getTouchY()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getProgress()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getSwipeEdge()I (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getProgress()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getSwipeEdge()I (blocked, linking, denied)
W/flutter_example( 4450): type=1400 audit(0.0:83): avc: denied { read } for name="max_map_count" dev="proc" ino=49468 scontext=u:r:untrusted_app:s0:c172,c256,c512,c768 tcontext=u:object_r:proc_max_map_count:s0 tclass=file permissive=0 app=com.example.webview_flutter_example
I/flutter ( 4450): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
W/flutter_example( 4450): Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J (unsupported,test-api, reflection, allowed)
W/flutter_example( 4450): Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (unsupported, reflection, allowed)
W/flutter_example( 4450): Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray; (unsupported, reflection, allowed)
W/flutter_example( 4450): Accessing hidden method Landroid/util/LongArray;->get(I)J (unsupported, reflection, allowed)
Connecting to VM Service at ws://127.0.0.1:57867/LZMnvV_7SsE=/ws
Connected to the VM Service.
I/Choreographer( 4450): Skipped 167 frames!  The application may be doing too much work on its main thread.
I/WebViewFactory( 4450): Loading com.android.webview version 138.0.7204.97 (code 720409733)
2
W/ziparchive( 4450): Unable to open '/system/product/app/TrichromeLibrary/TrichromeLibrary.dm': No such file or directory
W/flutter_example( 4450): Entry not found
I/cr_WVCFactoryProvider( 4450): version=138.0.7204.97 (720409733) minSdkVersion=29 isBundle=false multiprocess=true packageId=127
I/cr_LibraryLoader( 4450): Successfully loaded native library
I/cr_CachingUmaRecorder( 4450): Flushed 8 samples from 8 histograms, 0 samples were dropped.
I/cr_CombinedPProvider( 4450): #registerProvider() provider:WV.O6@20ac031 isPolicyCacheEnabled:false policyProvidersSize:0
I/cr_PolicyProvider( 4450): #setManagerAndSource() 0
I/cr_CombinedPProvider( 4450): #linkNativeInternal() 1
D/CompatibilityChangeReporter( 4450): Compat change id reported: 183155436; UID 10172; state: ENABLED
I/cr_AppResProvider( 4450): #getApplicationRestrictionsFromUserManager() Bundle[EMPTY_PARCEL]
I/cr_PolicyProvider( 4450): #notifySettingsAvailable() 0
I/cr_CombinedPProvider( 4450): #onSettingsAvailable() 0
I/cr_CombinedPProvider( 4450): #flushPolicies()
W/chromium( 4450): [WARNING:net/dns/dns_config_service_android.cc:69] Failed to read DnsConfig.
W/chromium( 4450): [WARNING:android_webview/browser/network_service/net_helpers.cc:143] HTTP Cache size is: 20971520
D/CompatibilityChangeReporter( 4450): Compat change id reported: 214741472; UID 10172; state: ENABLED
I/CameraManagerGlobal( 4450): Connecting to camera service
D/CompatibilityChangeReporter( 4450): Compat change id reported: 171228096; UID 10172; state: ENABLED
W/cr_media( 4450): BLUETOOTH_CONNECT permission is missing.
W/cr_media( 4450): getBluetoothAdapter() requires BLUETOOTH permission
W/cr_media( 4450): registerBluetoothIntentsIfNeeded: Requires BLUETOOTH permission
I/AdrenoVK-0( 4450): QUALCOMM build          : 3b5766d, Ia5561a03a2
I/AdrenoVK-0( 4450): Build Date              : 07/20/21
I/AdrenoVK-0( 4450): Shader Compiler Version : EV031.32.02.12
I/AdrenoVK-0( 4450): Local Branch            : 
2
I/AdrenoVK-0( 4450): Remote Branch           : 
I/AdrenoVK-0( 4450): Reconstruct Branch      : 
I/AdrenoVK-0( 4450): Build Config            : S L 10.0.7 AArch64
I/AdrenoVK-0( 4450): Driver Path             : /vendor/lib64/hw/vulkan.adreno.so
I/PlatformViewsController( 4450): Hosting view in view hierarchy for platform view: 0
D/ProfileInstaller( 4450): Installing profile for com.example.webview_flutter_example
I/PlatformViewsController( 4450): PlatformView is using SurfaceProducer backend
W/Parcel  ( 4450): Expecting binder but got null!
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
D/CompatibilityChangeReporter( 4450): Compat change id reported: 193247900; UID 10172; state: ENABLED
I/Choreographer( 4450): Skipped 65 frames!  The application may be doing too much work on its main thread.
W/Parcel  ( 4450): Expecting binder but got null!
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/OpenGLRenderer( 4450): Davey! duration=1150ms; Flags=1, FrameTimelineVsyncId=29337, IntendedVsync=71737706745, Vsync=72817805765, InputEventId=0, HandleInputStart=72827300804, AnimationStart=72827312314, PerformTraversalsStart=72842270491, DrawStart=72869130231, FrameDeadline=71754373411, FrameInterval=72827124762, FrameStartTime=16666666, SyncQueued=72876836950, SyncStart=72944622210, IssueDrawCommandsStart=72944727991, SwapBuffers=72952334450, FrameCompleted=72956013356, DequeueBufferDuration=6486094, QueueBufferDuration=713438, GpuCompleted=72956013356, SwapBuffersCompleted=72954068981, DisplayPresentTime=-4, CommandSubmissionCompleted=72952334450, 
2
W/VideoCapabilities( 4450): Unrecognized profile/level 0/3 for video/mpeg2
I/flutter ( 4450): WebView is loading (progress : 10%)
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/flutter ( 4450): Page started loading: https://flutter.dev/
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): url change to https://flutter.dev/
I/flutter ( 4450): WebView is loading (progress : 23%)
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): Page resource error:
I/flutter ( 4450):   code: -6
I/flutter ( 4450):   description: net::ERR_CONNECTION_REFUSED
I/flutter ( 4450):   errorType: WebResourceErrorType.connect
I/flutter ( 4450):   isForMainFrame: false
I/flutter ( 4450):           
I/flutter ( 4450): Page resource error:
I/flutter ( 4450):   code: -6
I/flutter ( 4450):   description: net::ERR_CONNECTION_REFUSED
I/flutter ( 4450):   errorType: WebResourceErrorType.connect
I/flutter ( 4450):   isForMainFrame: false
I/flutter ( 4450):           
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 70%)
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
W/ImageReader_JNI( 4450): Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
W/ImageReader_JNI( 4450): Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/cr_MediaCodecBridge( 4450): create MediaCodec video decoder, mime video/avc, decoder name OMX.qcom.video.decoder.avc, block_model=false
I/OMXClient( 4450): IOmx service obtained
I/MediaCodec( 4450): MediaCodec will operate in async mode
D/MediaCodec( 4450): flushMediametrics
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba38660, reason connectToSurface
I/MediaCodec( 4450): [OMX.qcom.video.decoder.avc] setting surface generation to 4556801
D/SurfaceUtils( 4450): disconnecting from surface 0x6f8ba38660, reason connectToSurface(reconnect)
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba38660, reason connectToSurface(reconnect)
D/MediaCodec( 4450): keep callback message for reclaim
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 70%)
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba38660 for 1632x1080, color 0x7fa30c06, rotation 0, usage 0x20402900
I/flutter ( 4450): Page resource error:
I/flutter ( 4450):   code: -1
I/flutter ( 4450):   description: net::ERR_FAILED
I/flutter ( 4450):   errorType: WebResourceErrorType.unknown
I/flutter ( 4450):   isForMainFrame: false
I/flutter ( 4450):           
I/cr_MediaCodecBridge( 4450): create MediaCodec video decoder, mime video/avc, decoder name OMX.qcom.video.decoder.avc, block_model=false
I/OMXClient( 4450): IOmx service obtained
I/MediaCodec( 4450): MediaCodec will operate in async mode
D/MediaCodec( 4450): flushMediametrics
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba34240, reason connectToSurface
I/MediaCodec( 4450): [OMX.qcom.video.decoder.avc] setting surface generation to 4556802
D/SurfaceUtils( 4450): disconnecting from surface 0x6f8ba34240, reason connectToSurface(reconnect)
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba34240, reason connectToSurface(reconnect)
D/MediaCodec( 4450): keep callback message for reclaim
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba34240 for 1632x1080, color 0x7fa30c06, rotation 0, usage 0x20402900
I/cr_MediaCodecBridge( 4450): create MediaCodec video decoder, mime video/avc, decoder name OMX.qcom.video.decoder.avc, block_model=false
I/OMXClient( 4450): IOmx service obtained
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/MediaCodec( 4450): MediaCodec will operate in async mode
D/MediaCodec( 4450): flushMediametrics
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba452c0, reason connectToSurface
I/MediaCodec( 4450): [OMX.qcom.video.decoder.avc] setting surface generation to 4556803
D/SurfaceUtils( 4450): disconnecting from surface 0x6f8ba452c0, reason connectToSurface(reconnect)
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba452c0, reason connectToSurface(reconnect)
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 80%)
D/MediaCodec( 4450): keep callback message for reclaim
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/flutter ( 4450): WebView is loading (progress : 80%)
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba452c0 for 1632x1080, color 0x7fa30c06, rotation 0, usage 0x20402900
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba38660 for 1632x1088, color 0x7fa30c06, rotation 0, usage 0x20402900
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba34240 for 1632x1088, color 0x7fa30c06, rotation 0, usage 0x20402900
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba452c0 for 1632x1088, color 0x7fa30c06, rotation 0, usage 0x20402900
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
2
E/chromium( 4450): [ERROR:gpu/command_buffer/service/image_reader_gl_owner.cc:311] no buffers currently available in the reader queue
I/flutter ( 4450): WebView is loading (progress : 100%)
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 100%)
I/flutter ( 4450): Page finished loading: https://flutter.dev/
3
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.32.7, on Microsoft Windows [version 10.0.26100.4652], locale fr-FR) [637ms]
    • Flutter version 3.32.7 on channel stable at C:\Users\adrie\AppData\Local\Flutter\Sdk
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d7b523b356 (7 days ago), 2025-07-15 17:03:46 -0700
    • Engine revision 39d6d6e699
    • Dart version 3.8.1
    • DevTools version 2.45.1

[✓] Windows Version (11 Professionnel 64-bit, 24H2, 2009) [4,8s]

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [5,2s]
    • Android SDK at C:\Users\adrie\AppData\Local\Android\sdk
    • Platform android-36, build-tools 36.0.0
    • Java binary at: C:\Program Files\Android\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.6+-13391695-b895.109)
    • All Android licenses accepted.

[✓] Chrome - develop for the web [47ms]
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✗] Visual Studio - develop Windows apps [45ms]
    ✗ Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[✓] Android Studio (version 2025.1.1) [40ms]
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 21.0.6+-13391695-b895.109)

[✓] VS Code (version 1.102.1) [37ms]
    • VS Code at C:\Users\adrie\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.114.0

[✓] Connected device (4 available) [554ms]
    • FP3 (mobile)      • A209F8600201 • android-arm64  • Android 13 (API 33)
    • Windows (desktop) • windows      • windows-x64    • Microsoft Windows [version 10.0.26100.4652]
    • Chrome (web)      • chrome       • web-javascript • Google Chrome 138.0.7204.158
    • Edge (web)        • edge         • web-javascript • Microsoft Edge 138.0.3351.95

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

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    in triagePresently being triaged by the triage team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions