Crashlytics连接被拒绝 - 无法连接到无法连接到api.crashlytics.com

时间:2014-07-06 11:15:49

标签: android crashlytics

我在启动应用时收到以下错误消息。使用插件配置Crashlytics - 存在build.gradle,AndroidManifest.xml,crashlytics.properties中的相应条目。从我的Application类开始Crashlytics。我每次都得到这个。我不在代理或任何事情之后。

E/Crashlytics﹕ Error performing auto configuration.
com.crashlytics.android.internal.aD: java.net.ConnectException: failed to connect to api.crashlytics.com/127.0.0.1 (port 443) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
        at com.crashlytics.android.internal.ay.a(SourceFile:2582)
        at com.crashlytics.android.internal.ay.b(SourceFile:2562)
        at com.crashlytics.android.internal.ay.b(SourceFile:2548)
        at com.crashlytics.android.a.a(SourceFile:81)
        at com.crashlytics.android.a.a(SourceFile:50)
        at com.crashlytics.android.Crashlytics.a(SourceFile:895)
        at com.crashlytics.android.Crashlytics.a(SourceFile:54)
        at com.crashlytics.android.t.a(SourceFile:839)
        at com.crashlytics.android.internal.aa.run(SourceFile:13)
        at java.lang.Thread.run(Thread.java:841)
 Caused by: java.net.ConnectException: failed to connect to api.crashlytics.com/127.0.0.1 (port 443) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
        at libcore.io.IoBridge.isConnected(IoBridge.java:223)
        at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
        at libcore.io.IoBridge.connect(IoBridge.java:112)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
        at java.net.Socket.connect(Socket.java:843)
        at com.android.okhttp.internal.Platform.connectSocket(Platform.java:131)
        at com.android.okhttp.Connection.connect(Connection.java:101)
        at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
        at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
        at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)
        at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:254)
        at com.crashlytics.android.internal.ay.i(SourceFile:2486)
        at com.crashlytics.android.internal.ay.j(SourceFile:2499)

5 个答案:

答案 0 :(得分:14)

来自Crashlytics的Hemal。你能检查一下广告拦截软件是否干扰了连接吗?

答案 1 :(得分:5)

我在小米M4上遇到了同样的问题。如上所述,如果您没有任何广告拦截应用程序,那么主要原因是/ets/hosts文件。

您可以从命令行检查此猜测:

adb shell # run a shell there
cat /etc/hosts | grep crashlytics # print file content and filter it by 'crashlytics' word

如果您看到类似这样的行列表,那么您正在寻找的是这个问题:

127.0.0.1 api.crashlytics.com
127.0.0.1 apps.crashlytics.com
127.0.0.1 beta.crashlytics.com
127.0.0.1 blog.crashlytics.com
127.0.0.1 calendar.crashlytics.com
127.0.0.1 crashlytics.com
127.0.0.1 docs.crashlytics.com
127.0.0.1 download.crashlytics.com
127.0.0.1 e.crashlytics.com
127.0.0.1 report.crashlytics.com
127.0.0.1 reports.crashlytics.com
127.0.0.1 settings.crashlytics.com
127.0.0.1 support.crashlytics.com
127.0.0.1 try.crashlytics.com
127.0.0.1 www.crashlytics.com

要解决此问题,您应该对它们进行评论。如何做到这一点我发现here,但我无法通过vi编辑文件。所以我只是拉了,改变并推回了hosts文件。请注意:您的设备必须扎根才能执行此操作。

adb pull /etc/hosts ./<your_computer_directory> # get hosts file from device 

只需评论这样的行:

#127.0.0.1 api.crashlytics.com
#127.0.0.1 apps.crashlytics.com
#127.0.0.1 beta.crashlytics.com
#127.0.0.1 blog.crashlytics.com
#127.0.0.1 calendar.crashlytics.com
#127.0.0.1 crashlytics.com
#127.0.0.1 docs.crashlytics.com
#127.0.0.1 download.crashlytics.com
#127.0.0.1 e.crashlytics.com
#127.0.0.1 report.crashlytics.com
#127.0.0.1 reports.crashlytics.com
#127.0.0.1 settings.crashlytics.com
#127.0.0.1 support.crashlytics.com
#127.0.0.1 try.crashlytics.com
#127.0.0.1 www.crashlytics.com

如果没有root规则,就无法将其推回去。所以将它推入一些tmp用户目录:

adb push ./<your_computer_directory>/hosts /mnt/sdcard/hosts

然后以root身份输入并替换/etc/hosts文件:

adb shell # run a shell there
su # become the root (don't miss confirmation request!)
mount -o remount,rw /system # allow to write
cp /mnt/sdcard/hosts /etc/hosts
rm /mnt/sdcard/hosts
mount -o remount,ro /system # get things back to normal
exit # unroot
nslookup YourBlockedAdSite.Net # check if it works
exit # good bye

利润!

答案 2 :(得分:4)

面对同样的问题,AdAway阻止了crashlytics.com。刚刚将此主机添加到白名单。

答案 3 :(得分:1)

检查您的设备是否安装了任何类型的广告拦截软件,或者修改了您的主机文件以阻止广告。 如果您的设备已植根,那么您可以检查/ etc / hosts下的hosts文件&#34; 127.0.0.1 crashlytics.com&#34;线。这条线可能导致了这个问题。

将crashlytics.com添加到AdAway白名单并测试您的应用。

干杯

答案 4 :(得分:1)

如果您已安装AdAway作为广告拦截器。您可以按照以下步骤将Crashlytics API列入白名单:

  • 从AdAway菜单中,选择“您的列表”。
  • 选择标记为“白色”的(第二个)标签。
  • 点击操作栏上的加号按钮,应显示一个主机名提示。
  • 输入*.crashlytics.com,然后点击添加。
  • 它应显示为“白色”标签下的列表项,确保已选中。
  • 返回主菜单,然后再次下载并应用广告屏蔽。

您的设备现在应该可以访问Crashlytics API。

P.S .:即使您没有安装广告拦截软件,某些手机制造商也会在其设备上启用默认黑名单作为某种广告拦截功能。通常,有一个设置选项可以将其禁用。但是您的里程可能会有所不同。您可以检查Android设备的主机文件(/etc/hosts),以确保它不是来自制造商的文件(如果您不是root用户)。 另外,VPN软件可能会通过DNS阻止主机,因此请确保也进行检查。