tree eeab2c5e0e3779ccefea3e18e0ad52daa1424fc7
parent a4b5a502d0abfb99f7e00077b0201951850ff8d3
author auto-submit[bot] <98614782+auto-submit[bot]@users.noreply.github.com> 1744407318 +0000
committer GitHub <noreply@github.com> 1744407318 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn+YsmCRC1aQ7uu5UhlAAAS3EQAKoHiHm5e7ungxAzgHentlXg
 SSolPNNkz1AdcJfL9uOHKOKbAOSkK15bMe/E4p/TQqxqjYDg/ogSNcg6ef/Fx2fJ
 3daJHk7zZPG6SVWxELd87Ni/Fka0tmJKkoRCVTx2qkFrwFCol2zf14Uo3jF8Q/Cw
 qttFLWNZZ8oqm3ssy1zyy4Q5RNHmtKWFyhlhZvExUi3j51hyTdhm1zdHk8iZmXrb
 hs+JFJUg7M94K3dsbdjAc9IUFPC4B0Qks5KY5ViGYWRRxxPGbaC6vpMw3Lzghxws
 AgiaFXcTB6F6tN6itvRImiW7VhoTirpSoH0O16nrqUJWEGLRk0Io8l+rtjC9bOmg
 nRthBJNv2au962iiE4VUPo/Huhx+IBP2okP/bZwnp46JdHwnooIp02+FonunOqwp
 XHyY+LKFE0EZHK8PRHj0+7N8UC1lSFTPkXLXgyNQFnmdA4bP/rdt22upz6HnnFgR
 bKID0o5S3Yj47PV0tGj2n/zCvVUcj9n/owZOgA6qQqUe0qVRk02RRzr1U0susTap
 whpyj5goqO5C31TCiiJv38dbdhM4NXmPACKAnyaV4+VVVOhEOt3gKkgG83Ev4dNs
 0UWJMQkPcsQBsV7/lnH837MXMncKzz7MktvUntCgm4YT12BQ1pewcuj2Vxm3BCyt
 svjkkYqesnO2m3JQIeVh
 =xAUx
 -----END PGP SIGNATURE-----
 

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>