sarbagyastha / youtube_player_flutter

Flutter plugin for playing or streaming YouTube videos inline using the official iFrame Player API. Supports both Android and iOS platforms.
BSD 3-Clause "New" or "Revised" License
677 stars 745 forks source link

InAppWebViewPlatform.instance is not set! #943

Open bahag-roostap opened 1 month ago

bahag-roostap commented 1 month ago

Describe the bug I ran the test which is provided in "packages/youtube_player_flutter/test/youtube_player_flutter_test.dart" and got this error, Could you please tell me what is the problem?

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ The following assertion was thrown building RawYoutubePlayer(dirty, dependencies: [InheritedYoutubePlayer], state: _RawYoutubePlayerState#bb3c2): A platform implementation for flutter_inappwebview has not been set. Please ensure that an implementation of InAppWebViewPlatform has been set to InAppWebViewPlatform.instance before use. For unit testing, InAppWebViewPlatform.instance can be set with your own test implementation. 'package:flutter_inappwebview_platform_interface/src/in_app_webview/platform_inappwebview_widget.dart': Failed assertion: line 202 pos 7: 'InAppWebViewPlatform.instance != null'

The relevant error-causing widget was: RawYoutubePlayer RawYoutubePlayer:file:///Users/roostap/.pub-cache/hosted/pub.dev/youtube_player_flutter-9.0.1/lib/src/player/youtube_player.dart:306:20

When the exception was thrown, this was the stack:

2 new PlatformInAppWebViewWidget (package:flutter_inappwebview_platform_interface/src/in_app_webview/platform_inappwebview_widget.dart:202:7)

3 new InAppWebView.fromPlatformCreationParams (package:flutter_inappwebview/src/in_app_webview/in_app_webview.dart:28:33)

4 new InAppWebView (package:flutter_inappwebview/src/in_app_webview/in_app_webview.dart:295:13)

5 _RawYoutubePlayerState.build (package:youtube_player_flutter/src/player/raw_youtube_player.dart:75:14)

6 StatefulElement.build (package:flutter/src/widgets/framework.dart:5592:27)

7 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5480:15)

8 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5643:11)

9 Element.rebuild (package:flutter/src/widgets/framework.dart:5196:7)

10 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5462:5)

11 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5634:11)

12 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456:5)

... Normal element mounting (4 frames)

16 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335:16)

17 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6893:36)

18 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6905:32)

... Normal element mounting (332 frames)

350 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335:16)

351 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6893:36)

352 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6905:32)

... Normal element mounting (457 frames)

809 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335:16)

810 Element.updateChild (package:flutter/src/widgets/framework.dart:3840:20)

811 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505:16)

812 Element.rebuild (package:flutter/src/widgets/framework.dart:5196:7)

813 ProxyElement.update (package:flutter/src/widgets/framework.dart:5809:5)

814 Element.updateChild (package:flutter/src/widgets/framework.dart:3824:15)

815 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505:16)

816 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5643:11)

817 Element.rebuild (package:flutter/src/widgets/framework.dart:5196:7)

818 StatefulElement.update (package:flutter/src/widgets/framework.dart:5666:5)

819 Element.updateChild (package:flutter/src/widgets/framework.dart:3824:15)

820 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505:16)

821 Element.rebuild (package:flutter/src/widgets/framework.dart:5196:7)

822 ProxyElement.update (package:flutter/src/widgets/framework.dart:5809:5)

823 Element.updateChild (package:flutter/src/widgets/framework.dart:3824:15)

824 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505:16)

825 Element.rebuild (package:flutter/src/widgets/framework.dart:5196:7)

826 ProxyElement.update (package:flutter/src/widgets/framework.dart:5809:5)

827 Element.updateChild (package:flutter/src/widgets/framework.dart:3824:15)

828 _RawViewElement._updateChild (package:flutter/src/widgets/view.dart:291:16)

829 _RawViewElement.update (package:flutter/src/widgets/view.dart:378:5)

830 Element.updateChild (package:flutter/src/widgets/framework.dart:3824:15)

831 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505:16)

832 Element.rebuild (package:flutter/src/widgets/framework.dart:5196:7)

833 StatelessElement.update (package:flutter/src/widgets/framework.dart:5556:5)

834 Element.updateChild (package:flutter/src/widgets/framework.dart:3824:15)

835 RootElement._rebuild (package:flutter/src/widgets/binding.dart:1354:16)

836 RootElement.update (package:flutter/src/widgets/binding.dart:1332:5)

To Reproduce Just run the test that is written in this address : "packages/youtube_player_flutter/test/youtube_player_flutter_test.dart"

nekomaruh commented 3 weeks ago

index.html (project, not build) should be modified. Make sure to add this tag before closing <head> tag, when running in web browser:

<script
          type="application/javascript"
          src="/assets/packages/flutter_inappwebview_web/assets/web/web_support.js"
          defer
  ></script>

Reference:

https://github.com/pichillilorenzo/flutter_inappwebview/issues/1468