Android项目集成Firebase Crashlytics运行报错无法正常使用该如何解决
E/FirebaseCrashlytics: Settings request failed. java.io.FileNotFoundException: https://firebase-settings.crashlytics.com/spi/v2/platforms/android/gmp/xxxxxxx:android:xxxxxxxxb/settings?instance=xxxxxxx8&build_version=2&display_version=2.0&source=1 at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:255) at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:211) at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:30) at com.google.firebase.crashlytics.internal.network.HttpGetRequest.execute(HttpGetRequest.java:80) at com.google.firebase.crashlytics.internal.settings.network.DefaultSettingsSpiCall.invoke(DefaultSettingsSpiCall.java:113) at com.google.firebase.crashlytics.internal.settings.SettingsController$1.then(SettingsController.java:199) at com.google.firebase.crashlytics.internal.settings.SettingsController$1.then(SettingsController.java:192) at com.google.android.gms.tasks.zzp.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:64) at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) at java.lang.Thread.run(Thread.java:923) E/FirebaseCrashlytics: Error handling uncaught exception java.util.concurrent.TimeoutException at com.google.firebase.crashlytics.internal.common.Utils.awaitEvenIfOnMainThread(Utils.java:122) at com.google.firebase.crashlytics.internal.common.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:232) at com.google.firebase.crashlytics.internal.common.CrashlyticsController$1.onUncaughtException(CrashlyticsController.java:155) at com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:54) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) at java.lang.Thread.dispatchUncaughtException(Thread.java:2203) I/Process: Sending signal. PID: 19658 SIG: 9
报错原因
google-services.json配置不匹配:重新创建Firebase项目后,未将新生成的配置文件完全替换到app模块根目录,或文件内的package_name、mobilesdk_app_id字段与项目实际applicationId、Firebase控制台注册的应用ID不一致,会触发配置请求404,也就是日志中的FileNotFoundException异常。- 网络访问限制:Crashlytics需要访问海外服务节点,测试设备/模拟器的网络无法正常连通Google服务、或连接了拦截相关域名的内网代理,会导致配置请求超时,触发TimeoutException。
- Crashlytics服务未激活:重新创建Firebase项目后,未进入Crashlytics控制台完成服务启用操作,SDK请求配置接口时会直接返回404。
- 依赖版本冲突:项目内的Google服务插件版本、Firebase BOM版本、Crashlytics SDK版本不匹配,比如
com.google.gms:google-services插件版本低于4.3.8,或Crashlytics Gradle插件版本与SDK版本不一致,会导致配置请求参数异常。 - 构建缓存残留:移除旧配置后,Android Studio构建缓存、本地Gradle缓存仍残留旧的Firebase配置信息,重新构建时加载旧参数发起请求,导致报错。
排查方案
- 核对
google-services.json:确认文件放置在app模块根目录,文件内的package_name与项目build.gradle中配置的applicationId完全一致,mobilesdk_app_id与Firebase控制台注册的Android应用ID完全匹配。 - 确认服务激活状态:进入Firebase控制台对应项目的Crashlytics页面,确认服务已处于启用状态,未停留在初始引导步骤。
- 清理缓存重新构建:依次执行Android Studio菜单栏「Build -> Clean Project」、「File -> Invalidate Caches / Restart」清空IDE与构建缓存,重启后重新构建项目测试。
- 测试网络连通性:测试设备切换至可正常访问Google服务的网络,关闭代理后再运行应用验证。
- 核对依赖版本:确保项目级build.gradle中的Google服务插件版本、Crashlytics Gradle插件版本,与app模块内的Firebase依赖版本匹配,建议使用官方Firebase BOM统一管理版本,避免版本冲突。
内容的提问来源于stack exchange,提问作者AtomicallyBeyond
相关产品推荐
相关产品推荐

