You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

现有Android项目中FlutterFragment集成InAppWebView失败求助

在FlutterFragment中集成InAppWebView遇到的问题

我正尝试将Flutter库InAppWebView集成到基于传统XML布局的现有Android应用中。使用FlutterActivity时一切正常,但改用FlutterFragment后,InAppWebView出现错误——我的目标是让WebView仅占据屏幕一部分,所以必须用Fragment实现。怀疑是对Fragment生命周期的理解有误,希望有人指出问题所在。

问题复现步骤

  • 已创建Android应用和Flutter模块
  • 将Flutter组件加载到FlutterActivity中时运行正常
  • 加载到FlutterFragment中时,执行以下代码后触发错误:
    await InAppWebViewController.setWebContentsDebuggingEnabled(true);
    
    这段代码是Flutter模块main.dart的Future main()中最先执行的操作之一(main.dart使用了InAppWebView文档中的示例代码),错误日志如下:
    E/OpenGLRenderer: Unable to match the desired swap behavior.
    E/flutter: [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method setWebContentsDebuggingEnabled on channel com.pichillilorenzo/flutter_inappwebview_manager)
        #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:308:7)
        <asynchronous suspension>
        #1      InAppWebViewController.setWebContentsDebuggingEnabled (package:flutter_inappwebview/src/in_app_webview/in_app_webview_controller.dart:3817:12)
        <asynchronous suspension>
        #2      main (package:flutter_web_view/main.dart:11:5)
        <asynchronous suspension>
    
  • 如果移除上述引发错误的代码,会出现另一个错误:
    E/flutter: [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create a platform view of unregistered type: com.pichillilorenzo/flutter_inappwebview
            at io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(PlatformViewsController.java:489)
            at io.flutter.plugin.platform.PlatformViewsController$1.createForPlatformViewLayer(PlatformViewsController.java:163)
            at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(PlatformViewsChannel.java:105)
            at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:55)
            at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258)
            at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
            at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
            at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
            at android.os.Handler.handleCallback(Handler.java:958)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loopOnce(Looper.java:205)
            at android.os.Looper.loop(Looper.java:294)
            at android.app.ActivityThread.main(ActivityThread.java:8176)
            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:971)
        , null, null)
        #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:652:7)
        #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:310:18)
        <asynchronous suspension>
        #2      ExpensiveAndroidViewController._sendCreateMessage (package:flutter/src/services/platform_views.dart:1040:5)
        <asynchronous suspension>
        #3      AndroidViewController.create (package:flutter/src/services/platform_views.dart:763:5)
        <asynchronous suspension>
    
  • 无论哪种情况,WebView都无法加载
  • 已在该Flutter库的GitHub页面提交issue

内容的提问来源于stack exchange,提问作者JacobToftgaardRasmussen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 03:37:29