Skip to content

[CP-beta] Update Flutter Android templates to AGP 9#186099

Merged
auto-submit[bot] merged 3 commits into
flutter:flutter-3.44-candidate.0from
jesswrd:cp-beta-agp-9-temp
May 7, 2026
Merged

[CP-beta] Update Flutter Android templates to AGP 9#186099
auto-submit[bot] merged 3 commits into
flutter:flutter-3.44-candidate.0from
jesswrd:cp-beta-agp-9-temp

Conversation

@jesswrd

@jesswrd jesswrd commented May 5, 2026

Copy link
Copy Markdown
Contributor

This was a manual cherry pick of #185953.

Issue Link:

What is the link to the issue this cherry-pick is addressing?

#186100

Impact Description:

What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
or the shipping of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

All newly created Flutter Android apps, plugins, and add-to-app scenarios.

Changelog Description:

Explain this cherry pick:

  • In one line that is accessible to most Flutter developers.
  • That describes the state prior to the fix.
  • That includes which platforms are impacted.
    See best practices for examples.

< Replace with changelog description here >
flutter/186100: When Flutter Android apps, plugins, and app-to-app scenarios are newly created, they will be on AGP 9 and be migrated to Built-in Kotlin.

Workaround:

Is there a workaround for this issue?

This change must be made. If we upgrade to AGP 9, we must migrate off of Built-in Kotlin.

Risk:

What is the risk level of this cherry-pick?

  • Low
  • Medium
  • High

Test Coverage:

Are you confident that your fix is well-tested by automated tests?

  • Yes
  • No

Validation Steps:

What are the steps to validate that this fix works?

  • flutter create a new app then run flutter build apk
  • flutter create a new plugin then navigate to the example project and run flutter build apk
  • follow the instructions for add-to-app scenarios here. If you can sucessfully run the android host project ./gradlew :assembleDebug, your build was successful.

These are the minimum required changes to update our templates to AGP 9.
Narrowed the scope from
[here](flutter#185730). This must be
CP'ed to beta and stable.

Bumped templates to AGP 9 to ensure all newly created Flutter apps are
on AGP 9 (and do not get the KGP warning).

AGP: 9.0.0
Gradle: 9.1.0
KGP: 2.3.20

Migrated app, module, and plugin templates from KGP to Built-in Kotlin
[Built-in
Kotlin](https://docs.flutter.dev/release/breaking-changes/migrate-to-built-in-kotlin).
Even though all necessary changes have been made to migrate to Built-in
Kotlin, Flutter does not support actually using Built-in Kotlin because
the default is still the legacy (by design).

Fixed some breaking changes when upgrading templates:
- android projects that contain similar package names fail to build
starting AGP 9
[here](https://developer.android.com/build/releases/agp-9-0-0-release-notes#:~:text=Enforces%20that%20each%20library%20has%20a%20distinct%20package%20name).
- compileSdkVersion was deprecated in AGP < 9 and completely removed in
AGP 9
[here](https://developer.android.com/reference/tools/gradle-api/8.11/com/android/build/api/dsl/CommonExtension#compileSdkVersion(kotlin.Int)).
- Java 17 is the new minimum for Gradle 9+
[here](https://docs.gradle.org/9.0.0/release-notes.html#jvm-17). This is
a no-op (except for unit tests) on our end because Java 17 has been the
minimum for AGP since AGP 8. Due to this, the warning message cites
Gradle version as the reason Java must be bumped instead of the AGP
version.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

If this change needs to override an active code freeze, provide a
comment explaining why. The code freeze workflow can be overridden by
code reviewers. See pinned issues for any active code freezes with
guidance.

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot 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.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[AI contribution guidelines]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label May 5, 2026
@flutter-dashboard

Copy link
Copy Markdown

This pull request was opened from and to a release candidate branch. This should only be done as part of the official Flutter release process. If you are attempting to make a regular contribution to the Flutter project, please close this PR and follow the instructions at Tree Hygiene for detailed instructions on contributing to Flutter.

Reviewers: Use caution before merging pull requests to release branches. Ensure the proper procedure has been followed.

@github-actions github-actions Bot added a: tests "flutter test", flutter_test, or one of our tests platform-android Android applications specifically tool Affects the "flutter" command-line tool. See also t: labels. framework flutter/packages/flutter repository. See also f: labels. f: integration_test The flutter/packages/integration_test plugin team-android Owned by Android platform team labels May 5, 2026
@jesswrd
jesswrd marked this pull request as ready for review May 5, 2026 22:25
@jesswrd
jesswrd requested a review from a team as a code owner May 5, 2026 22:25
@jesswrd
jesswrd requested review from reidbaker and removed request for a team May 5, 2026 22:25

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates Android build configurations and dependencies, including bumping Gradle to 9.1.0, the Android Gradle Plugin to 9.0.1, and the Kotlin Gradle Plugin to 2.3.20. It refactors the Kotlin configuration in Gradle templates to use the compilerOptions DSL instead of kotlinOptions and updates the isKotlin detection logic in gradle_utils.dart to support this change. Additionally, it updates various Android library dependencies across multiple projects and makes a minor fix to URI handling in aar_init_script.gradle. I have no feedback to provide as there were no review comments.

@jesswrd jesswrd changed the title AGP 9 template (#185953) [CP-stable] Update Flutter Android templates to AGP 9 (#185953) May 5, 2026
@jesswrd jesswrd changed the title [CP-stable] Update Flutter Android templates to AGP 9 (#185953) [CP-stable] Update Flutter Android templates to AGP 9 May 5, 2026
@jesswrd jesswrd changed the title [CP-stable] Update Flutter Android templates to AGP 9 [CP-beta] Update Flutter Android templates to AGP 9 May 5, 2026
@jesswrd
jesswrd requested a review from jmagman May 5, 2026 22:43
@github-actions github-actions Bot removed the CICD Run CI/CD label May 5, 2026
@jesswrd jesswrd added the CICD Run CI/CD label May 5, 2026
@jesswrd jesswrd added CICD Run CI/CD and removed CICD Run CI/CD labels May 6, 2026
@fluttergithubbot

Copy link
Copy Markdown
Contributor

An existing Git SHA, 6760de7d493652c5001ccf23a1763561eb61764b, was detected, and no actions were taken.

To re-trigger presubmits after closing or re-opeing a PR, or pushing a HEAD commit (i.e. with --force) that already was pushed before, push a blank commit (git commit --allow-empty -m "Trigger Build") or rebase to continue.

@walley892 walley892 added the cp: review Cherry-picks in the review queue label May 6, 2026
@walley892 walley892 added autosubmit Merge PR when tree becomes green via auto submit App and removed CICD Run CI/CD labels May 6, 2026
@walley892 walley892 added the CICD Run CI/CD label May 6, 2026
@fluttergithubbot

Copy link
Copy Markdown
Contributor

An existing Git SHA, 6760de7d493652c5001ccf23a1763561eb61764b, was detected, and no actions were taken.

To re-trigger presubmits after closing or re-opeing a PR, or pushing a HEAD commit (i.e. with --force) that already was pushed before, push a blank commit (git commit --allow-empty -m "Trigger Build") or rebase to continue.

@github-actions github-actions Bot removed the CICD Run CI/CD label May 6, 2026
@jesswrd jesswrd added the CICD Run CI/CD label May 6, 2026
@auto-submit
auto-submit Bot merged commit 74367df into flutter:flutter-3.44-candidate.0 May 7, 2026
152 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: tests "flutter test", flutter_test, or one of our tests autosubmit Merge PR when tree becomes green via auto submit App CICD Run CI/CD cp: review Cherry-picks in the review queue f: integration_test The flutter/packages/integration_test plugin framework flutter/packages/flutter repository. See also f: labels. platform-android Android applications specifically team-android Owned by Android platform team tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants