Flutter连接Firebase遇错误,求解析问题及修正方案
错误日志
W/DynamiteModule(14350): 未找到com.google.android.gms.providerinstaller.dynamite的本地模块描述符类。
I/DynamiteModule(14350): 正在考虑本地模块com.google.android.gms.providerinstaller.dynamite:0和远程模块com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller(14350): 加载providerinstaller模块失败:未找到可接受的com.google.android.gms.providerinstaller.dynamite模块。本地版本为0,远程版本为0。
I/xample.firebas(14350): ClassLoaderContext是一个特殊的共享库。
I/TetheringManager(14350): registerTetheringEventCallback:com.example.firebase
V/NativeCrypto(14350): 正在注册com/google/android/gms/org/conscrypt/NativeCrypto的295个本地方法...
错误原因
该错误源于设备上的Google Play服务版本过低或未正确安装,导致Firebase依赖的ProviderInstaller模块无法正常加载。ProviderInstaller用于更新设备安全证书,是Firebase与Google服务通信的必要组件。
修正方法
- 更新Google Play服务
打开设备的Google Play商店,搜索「Google Play服务」,检查并安装最新版本,完成后重启设备。 - 检查Firebase版本配置
确保android/app/build.gradle中依赖的Google服务版本与项目兼容,示例配置:
同时确认dependencies { implementation 'com.google.android.gms:play-services-base:17.6.0' implementation platform('com.google.firebase:firebase-bom:32.7.0') }android/build.gradle中的Google服务插件版本正确:dependencies { classpath 'com.google.gms:google-services:4.4.0' } - 清理重建项目
执行以下命令清理缓存并重新构建:flutter clean flutter pub get cd android && ./gradlew clean cd .. && flutter run - 验证设备/模拟器兼容性
老旧设备可能不支持最新Google Play服务,可更换较新Android设备测试;使用模拟器时,选择带「Google APIs」或「Google Play」标识的系统镜像。
内容的提问来源于stack exchange,提问作者Mathivanan

