Android 14环境下Firebase HandshakeException握手中断问题求助
Android 14设备上Firebase HandshakeException问题排查
我是Firebase新手,近期接手了一个使用Firebase的项目,该项目于2024年12月初完成最新部署。目前仅在Android 14设备上出现一处稳定性问题:HandshakeException: Connection terminated during handshake. Error thrown.
错误堆栈跟踪信息
Fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: HandshakeException: Connection terminated during handshake. Error thrown . at FirebaseCrashlytics.recordError(firebase_crashlytics.dart:119) at FirebaseCrashlytics.recordFlutterError(firebase_crashlytics.dart:145) at FirebaseCrashlytics.recordFlutterFatalError(firebase_crashlytics.dart:160) at main.<fn>(main.dart:72) at FlutterError.reportError(assertions.dart:1189) at ImageStreamCompleter.reportError(image_stream.dart:738) at new MultiImageStreamCompleter.<fn>(multi_image_stream_completer.dart:32) at _SuspendState._createAsyncStarCallback.<fn>(dart:async) at new MultiImageStreamCompleter.<fn>(multi_image_stream_completer.dart:25)
可能的原因
- Android 14网络安全策略收紧:Android 14对TLS握手的安全性要求更高,禁用了部分旧版TLS协议和弱加密套件。如果项目依赖的Firebase SDK或后端服务仍在使用这类不符合要求的配置,会直接导致握手中断。
- Firebase SDK版本适配问题:2024年12月部署的项目若使用的Firebase SDK未针对Android 14做适配,可能存在兼容性bug。从堆栈看错误触发自
ImageStreamCompleter,大概率是加载Firebase存储中图片时的网络请求出了问题。 - 网络环境拦截或波动:部分Android 14设备所处的网络(比如企业内网、代理网络)可能拦截了TLS握手流程,或者网络不稳定导致握手超时终止。
- 证书验证失败:Firebase服务端SSL证书更新后,Android 14的证书验证逻辑更严格,若设备根证书存储异常,或证书链不完整,会终止握手。
排查方向
- 升级Firebase相关SDK到支持Android 14的最新稳定版本,重点检查
firebase_storage、firebase_core等依赖。 - 检查项目的网络安全配置:确认
AndroidManifest.xml是否引用了正确的network_security_config,是否允许所需的TLS版本和加密套件。 - 在不同网络环境下测试(比如移动数据、公共WiFi),排除特定网络的干扰。
- 核对Firebase控制台中存储/数据库的域名和证书配置,确保服务端证书有效且能被Android 14设备正常识别。
内容的提问来源于stack exchange,提问作者sarah. isml
相关产品推荐
相关产品推荐

