Skip to content

AI & TechnologyFlutter "Deleted Android v1 Embedding" Build Error: The Fix

Simon Dziak
Simon Dziak
Founder & developer, App369
LinkedIn
October 18, 20267 min

Key takeaways

  • Flutter removed the Android v1 embedding in Flutter 3.29, released on February 12, 2025. Classes such as io.flutter.app.FlutterActivity, io.flutter.app.FlutterApplication and io.flutter.view.FlutterView no longer exist.
  • The Flutter tool treats an app as v1, and stops with "Build failed due to use of deleted Android v1 embedding", when its AndroidManifest.xml uses io.flutter.app.FlutterApplication or lacks <meta-data android:name="flutterEmbedding" android:value="2"/>.
  • The app fix is Flutter's own migration: change the FlutterActivity import, move custom channel setup into configureFlutterEngine, set android:name="${applicationName}" and add the flutterEmbedding meta-data with value 2.
  • A plugin that still has a registerWith(PluginRegistry.Registrar) method fails to compile instead. Flutter's build output suggests flutter pub upgrade, and plugin authors should delete registerWith.
  • The v2 embedding arrived in Flutter 1.12 in December 2019, and flutter create stopped making v1 projects in Flutter 1.22, so, in my view, the apps hit now are mostly ones created before 2020 and not updated since.

Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.

If flutter build stops with "Build failed due to use of deleted Android v1 embedding", your Android project still uses the wrapper Flutter removed in Flutter 3.29. For a project that came straight from flutter create, Flutter's guide changes two files: MainActivity and AndroidManifest.xml. Custom channel code or a splash screen adds a little more. If the build instead fails inside a plugin with cannot find symbol and PluginRegistry.Registrar, the plugin is the problem, and a newer version of it usually fixes it.

If you landed here from an old link to Flutter's "Upgrading pre 1.12 Android projects" wiki page or an old flutter.dev/go migration link, this is what changed and where the steps live now. The facts come from Flutter's breaking-change docs, its migration guide and the Flutter tool's source code, as listed in the sources. I checked each one on October 18, 2026.

Disclosure: App369 is my studio. I build and fix Flutter apps, and the last section mentions what I sell. Google doesn't pay me for anything on this page.

What happened to the v1 embedding, and when

DateWhat happenedSource
December 11, 2019Flutter 1.12 reaches stable with the v2 Android embedding (io.flutter.embedding)Flutter deprecation page, release archive
October 1, 2020Flutter 1.22: flutter create only makes v2 apps and plugins. Existing v1 apps keep working, but get a migration warning when they use pluginsFlutter deprecation page
February 12, 2025Flutter 3.29 removes the v1 embedding Java classesFlutter removal page, release archive

Flutter's deprecation page says that by Q2 2020 only 26% of applications used the v1 embedding. In my view, the apps that still hit this error are usually ones created before 2020 and moved to a new Flutter version for the first time in years.

What the old addresses do today

Checked on October 18, 2026:

  • The "Upgrading pre 1.12 Android projects" page on the Flutter GitHub wiki now only says it has moved, and links to the same page in the Flutter repository's docs folder.
  • flutter.dev/go/android-project-migration now redirects to Flutter's AndroidX migration page, which doesn't cover the v1 embedding. The embedding steps are in the repository doc above.
  • flutter.dev/go/android-plugin-migration redirects to "Supporting the new Android plugins APIs", which is still the right page for plugin authors.

Why Flutter says your app is v1

The check is in the Flutter tool's project.dart. It reads android/app/src/main/AndroidManifest.xml and treats the app as v1 when:

  • the <application> tag has android:name="io.flutter.app.FlutterApplication", or
  • there is a flutterEmbedding meta-data tag with value 1, or
  • there is no <meta-data android:name="flutterEmbedding" android:value="2"/> at all, or
  • the manifest file is missing.

Any of those ends the build with "Build failed due to use of deleted Android v1 embedding." The tool skips this check for add-to-app modules and plugins.

Fixing the app

These are the steps from Flutter's Upgrading pre 1.12 Android projects guide, for a project made with flutter create.

  1. Update MainActivity. Change import io.flutter.app.FlutterActivity to import io.flutter.embedding.android.FlutterActivity and delete the onCreate override that calls GeneratedPluginRegistrant.registerWith(this). The new FlutterActivity registers plugins itself.
    import io.flutter.embedding.android.FlutterActivity
    
    class MainActivity: FlutterActivity()
    

    If your file is MainActivity.java, the guide's result is the same: import io.flutter.embedding.android.FlutterActivity; and public class MainActivity extends FlutterActivity {}.
  2. Move any platform channel code. If onCreate also set up a MethodChannel, move it into a configureFlutterEngine(flutterEngine) override, and use flutterEngine.getDartExecutor().getBinaryMessenger() instead of getFlutterView(). The guide's example also calls GeneratedPluginRegistrant.registerWith(flutterEngine) at the start of that override.
  3. Fix the application tag. In AndroidManifest.xml, replace android:name="io.flutter.app.FlutterApplication" with android:name="${applicationName}".
  4. Declare the v2 embedding. Add this inside <application>:
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
    
  5. Update the splash screen if you had one. Remove meta-data named io.flutter.app.android.SplashScreenUntilFirstFrame. The guide shows the replacement: a LaunchTheme and a NormalTheme in styles.xml, set on the activity.
  6. Rebuild. The guide says the app should then build as normal, for example with flutter build apk. My advice: run flutter clean first, and flutter pub upgrade too, because a project this old usually has plugins that are out of date as well.

If your own code uses other removed classes, Flutter's removal page lists the replacements:

Removed classUse instead
io.flutter.app.FlutterActivityio.flutter.embedding.android.FlutterActivity
io.flutter.app.FlutterFragmentActivityio.flutter.embedding.android.FlutterFragmentActivity
io.flutter.app.FlutterApplicationRemoved. Extend android.app.Application if you need a custom one
io.flutter.app.FlutterPlayStoreSplitApplicationio.flutter.embedding.android.FlutterPlayStoreSplitApplication
io.flutter.view.FlutterMainio.flutter.embedding.engine.loader.FlutterLoader
io.flutter.view.FlutterView and FlutterNativeViewio.flutter.embedding.android.FlutterView

For add-to-app projects, the same guide has a separate section: remove calls to FlutterMain.startInitialization and ensureInitializationComplete, and replace the io.flutter.facade classes.

Fixing a plugin that still uses PluginRegistry.Registrar

If the error points at a plugin, its Android code usually still has a registerWith(PluginRegistry.Registrar registrar) method. That API was removed with the rest of the v1 embedding. When the Flutter tool sees that line in a failed build, it prints its own advice: run flutter pub upgrade to get newer plugin versions, and file an issue if that doesn't help.

  • If you use the plugin: upgrade it, as the tool suggests. My advice: if flutter pub upgrade doesn't move it, check pub.dev for a newer major version and run flutter pub upgrade --major-versions. If the plugin has had no release in years, replace it.
  • If you maintain the plugin: Flutter's removal page says to delete the registerWith method from your FlutterPlugin implementation. The Flutter team did the same for its own plugins in flutter/packages#6494.

Need a hand?

If an older Flutter app won't build after an upgrade, the App Fix Ticket covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days and comes as a pull request. If the iOS side broke too, see Flutter iOS build failed after an upgrade, or send me a short description.

Frequently asked questions

What does "Build failed due to use of deleted Android v1 embedding" mean?
The Flutter tool decided your Android app still uses the old v1 embedding, which was removed in Flutter 3.29. In Flutter's source, that happens when AndroidManifest.xml uses io.flutter.app.FlutterApplication, or has no flutterEmbedding meta-data with value 2, or the AndroidManifest.xml file is missing.
How do I fix the deleted Android v1 embedding error?
Follow Flutter's "Upgrading pre 1.12 Android projects" steps: import io.flutter.embedding.android.FlutterActivity in MainActivity, remove the old onCreate plugin registration, set android:name="${applicationName}" on the application tag, and add <meta-data android:name="flutterEmbedding" android:value="2"/> inside <application>.
Which Flutter version removed the v1 embedding?
Flutter 3.29. Flutter's breaking-change page says the removal landed in 3.28.0-0.1.pre and shipped in stable 3.29, which Flutter's release archive dates February 12, 2025.
Why does a plugin fail with "cannot find symbol" PluginRegistry.Registrar?
The plugin usually still has a registerWith method that takes a PluginRegistry.Registrar, a v1 API removed in Flutter 3.29. Flutter's build output suggests running flutter pub upgrade to get a newer plugin version. If no fixed version exists, the method has to be removed from the plugin.
Can I keep using the v1 embedding on an older Flutter version?
Flutter's breaking-change page says it was removed in 3.29, so earlier versions still have it. In my view, pinning an old Flutter only delays the fix. Newer plugin versions and store requirements move on, and for a standard flutter create project the migration changes two files.

Sources

  1. Flutter docs, Removal of v1 Android embedding Java APIs (last updated July 31, 2026)
  2. Flutter docs, Android v1 embedding app and plugin creation deprecation
  3. Flutter on GitHub, Upgrading pre 1.12 Android projects
  4. Flutter docs, Supporting the new Android plugins APIs
  5. Flutter on GitHub, flutter_tools project.dart (embedding check)
  6. Flutter on GitHub, flutter_tools gradle_errors.dart (v1 embedding plugin handler)
  7. Flutter release archive (macOS)

Fixed-price services

Want this done at a fixed price?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Tags
#build failed due to use of deleted android v1 embedding #flutter v1 embedding #flutter v2 embedding migration #flutterEmbedding meta-data #io.flutter.app.FlutterActivity #PluginRegistry.Registrar cannot find symbol #registerWith registrar flutter plugin #flutter 3.29 android build error #upgrading pre 1.12 android projects
Share:

Related Resources

Related guides