Reid Baker 935b8f7030
Migrate abi build paths to use new abi filtering api #AGP9 (#181828)
Related to #180137 

Not equivalent migrations, Before [1]* release/debug `BuildType`'s were
modified to clear the set abi values and force set the 3 abi values
flutter supports. The proposed code allows overriding of the abi config
in defaultConfig without a flag but *requires* `-P
disable-abi-filtering=true` to set custom values in either BuildTypes or
Flavors.
Flavors requiring a flag is consistent behavior with no change. This is
because the "newDsl" only allows a union of default and other build
types AGP bug tracking this can be found here
http://issuetracker.google.com/issues/285353854.

[1] if --split-abi flag was not passed and the app did not disable abi
filter in their build props

`onVariants` is not preferred because
[variant](https://android.googlesource.com/platform/tools/base/+/refs/heads/mirror-goog-studio-main/build-system/gradle-api/src/main/java/com/android/build/api/variant/Variant.kt)
does not contain the values we wish to set. Specifically any abi/ndk
values. The "buildType" on variant is a string which is not the same as
`BaseExtension.buildTypes`.
`variantBuilder` similarly did not have the values we want to modify.
[VariantBuilder
Source](https://android.googlesource.com/platform/tools/base/+/refs/heads/mirror-goog-studio-main/build-system/gradle-api/src/main/java/com/android/build/api/variant/VariantBuilder.kt).

Command to run a specific jni integration tests from
`packages/flutter_tools/` `FLUTTER_ROOT=~/flutter-work/
../../bin/cache/dart-sdk/bin/dart test
test/integration.shard/gradle_jni_packaging_test.dart --plain-name
'abiFilters provided by the user take precedence over the default'`


## 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].
- [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.
- [x] All existing and new tests are passing.

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Gray Mackall <34871572+gmackall@users.noreply.github.com>
Co-authored-by: jesswrd <jessiewong401@gmail.com>
2026-02-19 16:38:23 +00:00
..