Flutter Android项目集成Firebase Crashlytics连接失败求助
解决方案:Flutter双产品风味Android项目Crashlytics连接失败问题
1. 检查风味对应的google-services.json配置
- 确保每个产品风味都有独立的
google-services.json文件,放置在对应风味的目录下,比如android/app/src/flavor1/google-services.json和android/app/src/flavor2/google-services.json,而非仅放在主目录android/app/下。 - 核对每个json文件内的
mobilesdk_app_id、project_id、package_name是否与对应风味的应用ID完全匹配。
2. 确认Gradle配置中的风味处理
- 在
android/app/build.gradle中,确保Crashlytics依赖与配置针对每个风味正确加载:android { flavorDimensions "app" productFlavors { flavor1 { dimension "app" applicationId "com.example.flavor1" // 其他风味专属配置 } flavor2 { dimension "app" applicationId "com.example.flavor2" // 其他风味专属配置 } } } dependencies { implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-analytics' } apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics' - 检查项目根目录
build.gradle中是否添加了Crashlytics插件的classpath:dependencies { classpath 'com.google.gms:google-services:4.4.0' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' // 其他classpath配置 }
3. 排查网络与权限问题
- 验证设备/模拟器能否正常访问
firebase-settings.crashlytics.com:可直接在设备浏览器中访问该域名,确认是否能加载;若使用代理,需确保代理允许访问该域名,或暂时关闭代理测试。 - 确认
AndroidManifest.xml中已添加必要网络权限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
4. 强制触发崩溃验证上报
- 调试模式下Crashlytics可能延迟上报,可手动触发崩溃测试:
在Flutter代码中添加测试按钮:ElevatedButton( onPressed: () { FirebaseCrashlytics.instance.crash(); }, child: const Text('Test Crash'), ) - 触发崩溃后重启应用,等待5-10分钟再查看Crashlytics控制台;若使用调试模式,需确保已启用Crashlytics上报配置。
5. 核对Firebase控制台配置
- 确保Firebase控制台已为每个风味的应用ID创建对应应用(同一项目或独立项目均可),且每个应用都已启用Crashlytics服务。
- 检查控制台中应用是否关联了正确的SHA-1指纹,包括调试版与发布版指纹。
6. 清除缓存并重新构建
- 执行以下命令清理缓存后重新构建项目:
flutter clean cd android ./gradlew clean ./gradlew assembleFlavor1Debug # 替换为你的目标风味名称 cd .. flutter run --flavor flavor1 -t lib/main_flavor1.dart # 替换为对应风味的入口文件
内容的提问来源于stack exchange,提问作者kyi
相关产品推荐
相关产品推荐

