You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter构建失败:Android v1 embedding已移除问题求助

解决Flutter "Error: Build failed due to use of deleted Android v1 embedding." 问题

为什么升级后还出现这个问题?

Flutter 3.24.0已经彻底移除了Android v1嵌入的支持,你的项目仍在沿用旧的v1嵌入配置,所以不管升级Flutter还是Android SDK,只要项目配置没更新,就会触发这个错误。

不需要降级Flutter或Android SDK

完全没必要降级——降级会错过新特性和安全修复。直接把项目的Android嵌入版本升级到v2(或v3)就能解决问题。

具体修复步骤

1. 更新AndroidManifest.xml

打开android/app/src/main/AndroidManifest.xml:

  • 删除旧的v1嵌入相关<activity>配置(通常是带io.flutter.app.FlutterActivity的条目)
  • 替换为v2/v3嵌入的标准配置:
    <activity
        android:name=".MainActivity"
        android:exported="true"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <meta-data
            android:name="io.flutter.embedding.android.NormalTheme"
            android:resource="@style/NormalTheme"/>
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <!-- v3嵌入需要的引擎服务 -->
    <service
        android:name="io.flutter.embedding.android.FlutterEngineService"
        android:exported="false"/>
    

2. 替换MainActivity类实现

打开android/app/src/main/kotlin/com/你的包名/MainActivity.kt(Java版本同理):

  • 替换为v2嵌入的基础实现:
    Kotlin版本:
    package com.你的包名
    
    import io.flutter.embedding.android.FlutterActivity
    
    class MainActivity : FlutterActivity() {
    }
    
    Java版本:
    package com.你的包名;
    
    import io.flutter.embedding.android.FlutterActivity;
    
    public class MainActivity extends FlutterActivity {
    }
    
  • 如果之前有自定义逻辑,迁移到configureFlutterEngine方法中实现即可。

3. 检查gradle配置

打开android/app/build.gradle:

  • 确保minSdkVersion至少为19(v2嵌入要求,Flutter 3.24.0建议设为21+)
  • 确认flutterEmbedding设置为2(一般新建项目会自动配置,旧项目可能需要手动加):
    android {
      defaultConfig {
        // ...
        minSdkVersion 21
        // ...
      }
    }
    

4. 清理后重新构建

执行以下命令:

flutter clean
flutter pub get
cd android && ./gradlew clean
cd ..
flutter run

额外注意点

  • 如果项目依赖的第三方插件还在使用v1嵌入,需要升级这些插件到支持v2/v3的版本。可以用flutter pub outdated检查插件版本,更新到最新版。
  • 要是项目太老,缺失LaunchTheme这类资源文件,可以参考Flutter新建项目的res/values/styles.xml配置补全。

内容的提问来源于stack exchange,提问作者ipassionforu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:12:36