FirebaseCrashlytics:创建报告的HTTP请求失败。okhttp3超时。

11

由于连接超时问题,Crashlytics无法报告致命/非致命崩溃。

这是我的应用级别的构建gradle文件。

implementation 'com.google.firebase:firebase-core:17.4.4'
implementation 'com.google.firebase:firebase-crashlytics:17.1.1'
implementation 'com.google.firebase:firebase-analytics:17.4.4'

现在崩溃信息没有被记录,每次打开应用程序时我都会看到这个提示:

E/FirebaseCrashlytics: Create report HTTP request failed.
    java.io.InterruptedIOException: timeout
        at okhttp3.internal.connection.Transmitter.timeoutExit(Transmitter.kt:105)
        at okhttp3.internal.connection.Transmitter.maybeReleaseConnection(Transmitter.kt:295)
        at okhttp3.internal.connection.Transmitter.noMoreExchanges(Transmitter.kt:259)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:202)
        at okhttp3.RealCall.execute(RealCall.kt:67)
        at com.google.firebase.crashlytics.internal.network.HttpRequest.execute(HttpRequest.java:129)
        at com.google.firebase.crashlytics.internal.report.network.DefaultCreateReportSpiCall.invoke(DefaultCreateReportSpiCall.java:90)
        at com.google.firebase.crashlytics.internal.report.network.CompositeCreateReportSpiCall.invoke(CompositeCreateReportSpiCall.java:34)
        at com.google.firebase.crashlytics.internal.report.ReportUploader.uploadReport(ReportUploader.java:116)
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:194)
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.onRun(ReportUploader.java:149)
        at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: java.io.IOException: Canceled
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:65)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:194)
        at okhttp3.RealCall.execute(RealCall.kt:67) 
        at com.google.firebase.crashlytics.internal.network.HttpRequest.execute(HttpRequest.java:129) 
        at com.google.firebase.crashlytics.internal.report.network.DefaultCreateReportSpiCall.invoke(DefaultCreateReportSpiCall.java:90) 
        at com.google.firebase.crashlytics.internal.report.network.CompositeCreateReportSpiCall.invoke(CompositeCreateReportSpiCall.java:34) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader.uploadReport(ReportUploader.java:116) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:194) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.onRun(ReportUploader.java:149) 
        at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) 
        at java.lang.Thread.run(Thread.java:919) 
E/FirebaseCrashlytics: Error occurred sending report com.google.firebase.crashlytics.internal.report.model.SessionReport@8309e69
    java.lang.RuntimeException: java.io.InterruptedIOException: timeout
        at com.google.firebase.crashlytics.internal.report.network.DefaultCreateReportSpiCall.invoke(DefaultCreateReportSpiCall.java:100)
        at com.google.firebase.crashlytics.internal.report.network.CompositeCreateReportSpiCall.invoke(CompositeCreateReportSpiCall.java:34)
        at com.google.firebase.crashlytics.internal.report.ReportUploader.uploadReport(ReportUploader.java:116)
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:194)
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.onRun(ReportUploader.java:149)
        at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: java.io.InterruptedIOException: timeout
        at okhttp3.internal.connection.Transmitter.timeoutExit(Transmitter.kt:105)
        at okhttp3.internal.connection.Transmitter.maybeReleaseConnection(Transmitter.kt:295)
        at okhttp3.internal.connection.Transmitter.noMoreExchanges(Transmitter.kt:259)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:202)
        at okhttp3.RealCall.execute(RealCall.kt:67)
        at com.google.firebase.crashlytics.internal.network.HttpRequest.execute(HttpRequest.java:129)
        at com.google.firebase.crashlytics.internal.report.network.DefaultCreateReportSpiCall.invoke(DefaultCreateReportSpiCall.java:90)
        at com.google.firebase.crashlytics.internal.report.network.CompositeCreateReportSpiCall.invoke(CompositeCreateReportSpiCall.java:34) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader.uploadReport(ReportUploader.java:116) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:194) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.onRun(ReportUploader.java:149) 
        at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) 
        at java.lang.Thread.run(Thread.java:919) 
     Caused by: java.io.IOException: Canceled
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:65)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:194)
        at okhttp3.RealCall.execute(RealCall.kt:67) 
        at com.google.firebase.crashlytics.internal.network.HttpRequest.execute(HttpRequest.java:129) 
        at com.google.firebase.crashlytics.internal.report.network.DefaultCreateReportSpiCall.invoke(DefaultCreateReportSpiCall.java:90) 
        at com.google.firebase.crashlytics.internal.report.network.CompositeCreateReportSpiCall.invoke(CompositeCreateReportSpiCall.java:34) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader.uploadReport(ReportUploader.java:116) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:194) 
        at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.onRun(ReportUploader.java:149) 
        at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) 
        at java.lang.Thread.run(Thread.java:919

非常感谢您的帮助。


2
我有完全相同的问题。这是Crashlytics出了什么问题吗? - Mkr
2
就在今天。奇怪的是,一些崩溃日志已经成功上传了(我想这些崩溃可能发生在1-2小时前?),但我无法看到最近发送的其余日志。更有趣的是,我有时会在.logcat中看到关于“成功上传日志”的信息,但我无法在Firebase控制台中看到它们。 - Mkr
1
更准确地说,有时我会遇到超时问题,有时候我会看到这些日志:Initializing Crashlytics 17.1.0 Crashlytics Reports Endpoint upload complete: <一些长数字>,但我无法在控制台中看到崩溃信息。 - Mkr
2
可能与此持续事件有关:https://status.firebase.google.com/incident/Crashlytics/20004 - David Vávra
1
@RoshanaPitigala 可能是这样,但当我将我的 proguard 规则更改为保留 okhttp 和 gson 源文件时,我的错误消失了。因此,可能会有多种情况导致这个超级模糊的错误。 - ansh sachdeva
显示剩余3条评论
2个回答

1

0
问题现已解决。问题的根本原因尚不清楚。但正如David此评论中建议的那样,它可能与同一天发生的以下事件有关。

然而,他们的日志并没有明确说明这两个事件之间的关系。


无论如何,我对未来的读者有一个建议。如果你遇到了这个问题,请访问下面的链接来检查Crashlytics本身的状态,因为很有可能它是他们的问题之一。

*状态更新可能需要一段时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接