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

执行flutter pub get遇cloud_firestore需迁移Android embedding v2错误的解决方法

修复"cloud_firestore requires your app to be migrated to the Android embedding v2"错误的步骤

你的Flutter版本3.3.10已经默认支持Android Embedding V2,但项目的Android端配置可能还停留在V1,按以下步骤调整即可解决问题:

1. 调整android/app/build.gradle配置

  • 打开android/app/build.gradle,找到android块下的defaultConfig,确保minSdkVersion至少为21(cloud_firestore 2.x版本要求最低SDK 21):
    defaultConfig {
        // ...其他配置
        minSdkVersion 21
        targetSdkVersion 33
        compileSdkVersion 33
    }
    
  • 检查dependencies块,确保包含V2 Embedding的依赖,移除旧的V1相关配置:
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation "io.flutter:flutter_embedding_release:1.0.0"
    }
    

2. 更新AndroidManifest.xml

  • 打开android/app/src/main/AndroidManifest.xml,确保application标签下的主Activity配置为V2 Embedding格式:
    <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>
    <!-- 添加V2 Embedding所需的服务 -->
    <service
        android:name="io.flutter.embedding.android.FlutterActivityLauncherService"
        android:exported="false"/>
    
  • 删除任何与V1 Embedding相关的配置,比如旧的FlutterApplication引用或GeneratedPluginRegistrant相关的meta-data。

3. 重构MainActivity

  • 如果是Kotlin项目,修改android/app/src/main/kotlin/[你的包名]/MainActivity.kt,让它继承自FlutterActivity:
    package com.yourpackage.name
    
    import io.flutter.embedding.android.FlutterActivity
    
    class MainActivity : FlutterActivity() {
    }
    
  • 如果是Java项目,修改android/app/src/main/java/[你的包名]/MainActivity.java:
    package com.yourpackage.name;
    
    import io.flutter.embedding.android.FlutterActivity;
    
    public class MainActivity extends FlutterActivity {
    }
    
  • 移除任何GeneratedPluginRegistrant.registerWith(this)的代码,V2 Embedding会自动注册插件。

4. 升级Firebase依赖(可选但推荐)

你的pubspec.yaml里的Firebase依赖版本偏旧,和Flutter 3.3.10存在兼容性风险,建议升级到兼容版本:

firebase_core: ^2.6.0
firebase_auth: ^4.3.0
cloud_firestore: ^4.4.0
firebase_messaging: ^14.2.0
firebase_storage: ^11.0.1

5. 清理并重建项目

依次执行以下命令:

flutter clean
flutter pub get
flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:00:54