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版本:
Java版本:package com.你的包名 import io.flutter.embedding.android.FlutterActivity class MainActivity : FlutterActivity() { }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
相关产品推荐
相关产品推荐

