[interactive_media_ads] Fixes Android IllegalStateException caused by uninitalized MediaPlayer#9861
Merged
auto-submit[bot] merged 8 commits intoflutter:mainfrom Aug 22, 2025
Conversation
MediaPlayer
Contributor
Author
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request addresses a critical IllegalStateException on Android by correctly handling the VideoAdPlayer.release callback, which now resets the ad container's state. A null check has been added to the pauseAd method to prevent calls on an uninitialized MediaPlayer. Additionally, a race condition in _startAdProgressTracking is resolved by ensuring ad duration is available before use. The changes are well-supported by new, targeted unit tests that validate the fixes.
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Aug 25, 2025
…aused by uninitalized `MediaPlayer` (flutter/packages#9861)
github-merge-queue bot
pushed a commit
to flutter/flutter
that referenced
this pull request
Aug 25, 2025
flutter/packages@092d832...fe66130 2025-08-23 [email protected] Roll Flutter from 26bb33b to edd434a (14 revisions) (flutter/packages#9874) 2025-08-23 [email protected] [google_maps_flutter_web] Fix consumeTapEvents for Circles, Polygons & Polylines (#173921) (flutter/packages#9838) 2025-08-22 [email protected] [interactive_media_ads] Fixes Android IllegalStateException caused by uninitalized `MediaPlayer` (flutter/packages#9861) 2025-08-22 [email protected] Roll Flutter from d2ac021 to 26bb33b (20 revisions) (flutter/packages#9872) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
mboetger
pushed a commit
to mboetger/flutter
that referenced
this pull request
Sep 18, 2025
flutter/packages@092d832...fe66130 2025-08-23 [email protected] Roll Flutter from 26bb33b to edd434a (14 revisions) (flutter/packages#9874) 2025-08-23 [email protected] [google_maps_flutter_web] Fix consumeTapEvents for Circles, Polygons & Polylines (flutter#173921) (flutter/packages#9838) 2025-08-22 [email protected] [interactive_media_ads] Fixes Android IllegalStateException caused by uninitalized `MediaPlayer` (flutter/packages#9861) 2025-08-22 [email protected] Roll Flutter from d2ac021 to 26bb33b (20 revisions) (flutter/packages#9872) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
korca0220
pushed a commit
to korca0220/flutter
that referenced
this pull request
Sep 22, 2025
flutter/packages@092d832...fe66130 2025-08-23 [email protected] Roll Flutter from 26bb33b to edd434a (14 revisions) (flutter/packages#9874) 2025-08-23 [email protected] [google_maps_flutter_web] Fix consumeTapEvents for Circles, Polygons & Polylines (flutter#173921) (flutter/packages#9838) 2025-08-22 [email protected] [interactive_media_ads] Fixes Android IllegalStateException caused by uninitalized `MediaPlayer` (flutter/packages#9861) 2025-08-22 [email protected] Roll Flutter from d2ac021 to 26bb33b (20 revisions) (flutter/packages#9872) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Jaineel-Mamtora
pushed a commit
to Jaineel-Mamtora/flutter_forked
that referenced
this pull request
Sep 24, 2025
flutter/packages@092d832...fe66130 2025-08-23 [email protected] Roll Flutter from 26bb33b to edd434a (14 revisions) (flutter/packages#9874) 2025-08-23 [email protected] [google_maps_flutter_web] Fix consumeTapEvents for Circles, Polygons & Polylines (flutter#173921) (flutter/packages#9838) 2025-08-22 [email protected] [interactive_media_ads] Fixes Android IllegalStateException caused by uninitalized `MediaPlayer` (flutter/packages#9861) 2025-08-22 [email protected] Roll Flutter from d2ac021 to 26bb33b (20 revisions) (flutter/packages#9872) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
lucaantonelli
pushed a commit
to lucaantonelli/flutter
that referenced
this pull request
Nov 21, 2025
flutter/packages@092d832...fe66130 2025-08-23 [email protected] Roll Flutter from 26bb33b to edd434a (14 revisions) (flutter/packages#9874) 2025-08-23 [email protected] [google_maps_flutter_web] Fix consumeTapEvents for Circles, Polygons & Polylines (flutter#173921) (flutter/packages#9838) 2025-08-22 [email protected] [interactive_media_ads] Fixes Android IllegalStateException caused by uninitalized `MediaPlayer` (flutter/packages#9861) 2025-08-22 [email protected] Roll Flutter from d2ac021 to 26bb33b (20 revisions) (flutter/packages#9872) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
AndroidAdDisplayContainerwasn't handling the callback ofVideoAdPlayer.release. It looks like the IMA SDK callsVideoAdPlayer.release->VideoAdPlayer.pauseAd->VideoAdPlayer.stopAdwhenAdsManager.destroyis called.The
AdDisplayContainernow resets state on release andpauseAdonly calls pause when media player is not null.Also fixes race condition where
AndroidAdDisplayContainer._adDurationwould be set to null while retrieving the current position of theVideoView.Fixes flutter/flutter#173537
Fixes flutter/flutter#174194
Pre-Review Checklist
[shared_preferences]pubspec.yamlwith an appropriate new version according to the pub versioning philosophy, or I have commented below to indicate which version change exemption this PR falls under1.CHANGELOG.mdto add a description of the change, following repository CHANGELOG style, or I have commented below to indicate which CHANGELOG exemption this PR falls under1.///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2 ↩3