flutter/packages/flutter_tools/gradle
auto-submit[bot] 28cc211fcd
Reverts "Fix regression in NDK version checking (#166998)" (#167007)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#166998
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: gmackall
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting:
https://github.com/flutter/flutter/pull/166998#issuecomment-2798030501
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: gmackall
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {stuartmorgan-g}
<!-- end_reviewers -->

<!-- start_revert_body -->
This change reverts the following previous change:
Fixes a regression from https://github.com/flutter/flutter/pull/166727/,
see
https://discord.com/channels/608014603317936148/846507907876257822/1360306682999210204

Adds a dependency on `shared_preferences_android` to the smoke tests we
have that run across the range of AGP/Gradle versions we support. Chosen
randomly, just to recreate the error. Hopefully this doesn't push the
test target into timeout range, it was already a kind of long running
one.

The IDE suggestion here was misleading, as this value switched from
nullable to non nullable in AGP 8.1/8.2. Unfortunately the IDE makes
these suggestions based on one AGP version, specified in the project
level `build.gradle.kts`. I checked all other files with our minimum
supported AGP version, and this was the only error.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [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].
- [ ] 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.
- [x] All existing and new tests are passing.

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[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

<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-04-11 21:35:18 +00:00
..
src Reverts "Fix regression in NDK version checking (#166998)" (#167007) 2025-04-11 21:35:18 +00:00
.dartignore
.gitignore Add instructions to download the Gradle wrapper to FGP readme, and add to gitignore (#162332) 2025-01-29 02:04:50 +00:00
aar_init_script.gradle Start using bin/cache/engine.{stamp|realm} instead of bin/internal/engine.{realm|version}. (#164352) 2025-03-02 00:54:33 +00:00
app_plugin_loader.gradle Remove support for imperative apply of Flutter Gradle Plugin (#160947) 2025-01-07 21:51:59 +00:00
build.gradle.kts Fix warnings in FGP (#166727) 2025-04-08 18:37:14 +00:00
flutter_proguard_rules.pro Remove allowoptimization modifier from FlutterPlugin proguard rules (#154715) 2024-09-06 20:37:23 +00:00
flutter.gradle Remove support for imperative apply of Flutter Gradle Plugin (#160947) 2025-01-07 21:51:59 +00:00
manual_migration_settings.gradle.md Don't import plugins that don't support android in settings.gradle (#54407) 2020-04-12 08:55:03 -07:00
module_plugin_loader.gradle Convert AppPluginLoaderPlugin to Kotlin, and add NativePluginLoaderReflectionBridge to expose it in Kotlin (#166027) 2025-04-02 20:29:13 +00:00
README.md Convert dependency version checker to Kotlin source (#162771) 2025-02-12 19:42:38 +00:00
resolve_dependencies.gradle.kts Update ktlint to 1.5 (#164409) 2025-03-03 19:39:23 +00:00
settings_aar.gradle.tmpl
settings.gradle.kts Format all kotlin according to ktlint (#143390) 2024-02-14 17:58:18 +00:00

The Flutter Gradle Plugin

This directory contains Gradle code used to by the Flutter tool to build Flutter apps for Android, primarily the Flutter Gradle Plugin (FGP) - a Gradle plugin built on top of Gradle and the Android Gradle Plugin (AGP).

Editing in Android Studio

To get code completion in Android Studio, you must open a new Android Studio window with this directory as the root. Code completion will not work when navigating to files in an Android Studio window opened at the root of the entire Flutter repo.

Contributing

The Flutter Gradle Plugin is currently being re-written from Groovy to Kotlin (Kotlin source specifically, i.e. not .kts). As such, outside of critical bug fixes, new contributions will only be accepted in src/main/kotlin (and src/test/kotlin).

Testing

To run the tests from the CLI, you first need to download the Gradle wrapper.

  1. Ensure you have run gclient sync recently (i.e., from the root of your framework checkout, run gclient sync -D).
  2. From this directory, run ../../../engine/src/flutter/third_party/gradle/bin/gradle wrapper.

Tests can be run in Android Studio, or directly with Gradle: ./gradlew test (note that this directory does not contain a version controlled Gradle file. You can find one in the engines third_party directory at <flutter_root>/engine/src/flutter/third_party/gradle/bin/gradle).

Alternatively, you can run all the tests in one file by passing in the fully qualified class name, e.g. ./gradlew test --tests com.flutter.gradle.BaseApplicationNameHandlerTest, or one test in one file by passing in the fully qualified class name followed by the method name, e.g ./gradlew test --tests "com.flutter.gradle.BaseApplicationNameHandlerTest.setBaseName respects Flutter tool property".

Sometimes changing a test name and then running it will cause an IDE error. To get Android Studio back to a good state on Mac, run Help > "Repair IDE", and then in the popup window "Rescan project indexes > Everything works now."

To add a new test, add a class under src/test/kotlin, with methods annotated with @Test. These tests will get automatically run on CI by packages/flutter_tools/test/integration.shard/android_run_flutter_gradle_plugin_tests_test.dart.