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

Flutter接入Firebase后出现Google Play Services相关运行报错如何解决

错误根因排查

  1. 设备运行环境缺失必要依赖:报错第一行明确提示当前运行应用的设备(真机/模拟器)未安装或未启用Google Play服务,Firebase的Firestore等核心服务运行必须依赖Google Play服务,这是触发崩溃的核心诱因。
  2. 最小SDK版本不兼容:你当前app级build.gradle中配置的minSdkVersion为16,而你引入的cloud_firestore: ^2.5.3版本要求Android端最小支持SDK为21,版本不兼容会导致SSL上下文初始化失败,进一步触发ALPN协议调用报错。
  3. 低版本系统缺少ALPN支持:Android 5.0以下系统未内置ALPN协议支持,gRPC框架在调用Firestore服务进行SSL握手时无法找到对应方法,直接抛出你看到的getAlpnSelectedProtocol not supported崩溃。

解决方案

  • 修复运行环境:
    如果使用Android模拟器,创建/切换带有Google Play标识的系统镜像(注意区分仅带Google API的镜像,此类镜像不包含完整Google Play服务支持),启动后将Google Play服务更新到最新版本;如果使用真机,确认设备支持Google服务框架,已正常安装并登录Google Play。
  • 调整minSdk配置:
    打开app级build.gradle文件,将defaultConfig块下的minSdkVersion 16修改为minSdkVersion 21,修改后同步Gradle配置。
  • 兼容低版本系统(可选,仅当你需要支持Android 5.0以下设备时操作):
    1. 在app级build.gradle的dependencies块中添加依赖:
    implementation 'org.conscrypt:conscrypt-android:2.5.2'
    
    1. 在Android端应用初始化入口(MainActivity的onCreate方法或自定义Application的onCreate方法)中添加以下代码,手动注册安全提供程序:
    import org.conscrypt.Conscrypt;
    import java.security.Security;
    
    // 初始化阶段执行
    Security.insertProviderAt(Conscrypt.newProvider(), 1);
    
  • 清理重建项目:
    依次执行以下命令清理旧构建缓存,重新运行项目即可:
    flutter clean
    flutter pub get
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:18:00