Skip to content
Boring Doc
BreakingHigh impactOfficial migration guidesince 3.35.0landed 3.35.0android

Flutter now sets default abiFilters in Android builds

Framework · Official source

Starting in Flutter 3.35, the Flutter Gradle Plugin automatically sets `abiFilters` for Android builds to prevent the inclusion of unsupported architectures in release APKs. This change can break custom `abiFilters` specified in your app's `build.gradle` file.

Original behavior

This change was introduced to solve an issue where third-party dependencies with x86 native libraries would cause Google Play to incorrectly identify Flutter apps as supporting x86 devices. When users with x86 devices installed these apps, they would crash at runtime because Flutter's native libraries aren't available for x86.

New behavior

The Flutter Gradle Plugin now programmatically sets `abiFilters` for non-debuggable builds when the `--splits-per-abi` option is not enabled by default to: - `armeabi-v7a` - `arm64-v8a` - `x86_64`

Who is affected
Applications and packages relying on the previous behaviour or signature.
Practical impact
Behaviour or API differences that can break builds or change runtime behaviour.
What action should I take?
Follow the official migration guide below, update affected call sites, run `dart fix --apply` where a fix is available, then run your tests.
Official migration guide (excerpt, © The Flutter Authors, CC BY 3.0)

If your app doesn't customize abiFilters, no changes are required.

If your app needs to customize which architectures are included, you have several options:

Option 1: Use the splits-per-abi flag

If you want to control architecture inclusion, use Flutter's built-in --splits-per-abi option instead of manually configuring abiFilters:

flutter build apk --splits-per-abi

This creates separate APKs for each architecture and automatically disables the automatic abiFilters configuration.

Option 2: Configure abiFilters in defaultConfig

If you must use a single APK with custom architecture filters, clear the automatically set filters and configure your own in defaultConfig. For example:

android {
    defaultConfig {
        ndk {
            // Clear the automatically set filters.
            abiFilters.clear()
            // Set your custom filters.
            abiFilters.addAll(listOf("arm64-v8a"))
        }
    }
}

Option 3: Disable Flutter's default ABI filtering

If your app configures ABI filters in buildTypes or productFlavors, pass -Pdisable-abi-filtering=true when running flutter build or flutter run. This prevents Flutter from applying its default ABI filters, so your build type or product flavor configuration controls which architectures are included.

Migration assistantAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Official migration guide·Verified classification (95%)

Listed in the official breaking-changes index (docs.flutter.dev/release/breaking-changes).

An official announcement or migration guide documents an intended behaviour or API change. A verified source change (git diff) shows code changed but does not by itself prove a public API is breaking. AI interpretations are labelled and never used to classify a change.

Source commit
b3045439b7c0
Source last updated
Oct 21, 2026
Last synchronized
Oct 21, 2026
Publication status
published
Publication history
  • Oct 21, 2026, 8:31 PM: new → published (ingestion) — Backed by an official breaking-change/migration guide.
AI explanationAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Was this useful?
Flutter now sets default abiFilters in Android builds · Boring Doc