Android Crashlytics连接被拒绝-连接到失败连接到api.Crashlytics.com失败

Android Crashlytics连接被拒绝-连接到失败连接到api.Crashlytics.com失败,android,crashlytics,Android,Crashlytics,启动应用程序时,我收到以下错误。已使用插件配置Crashlytics-存在build.gradle、AndroidManifest.xml和Crashlytics.properties中相应的条目。从我的应用程序类启动Crashlytics。我每次都收到这个。我不支持代理或任何事情 E/Crashlytics﹕ Error performing auto configuration. com.crashlytics.android.internal.aD: java.net.ConnectExc

启动应用程序时,我收到以下错误。已使用插件配置Crashlytics-存在build.gradle、AndroidManifest.xml和Crashlytics.properties中相应的条目。从我的应用程序类启动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)

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

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

检查您的设备是否安装了任何类型的广告阻止软件,或者您的主机文件是否被修改为阻止广告。 如果您的设备是根设备,则可以检查/etc/hosts下的hosts文件中的“127.0.0.1 crashlytics.com”行。可能是这条线导致了这个问题。

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


干杯

我在小米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
要解决此问题,您应该对其进行注释。我找到了这样做的想法,但我无法通过vi编辑文件。所以我只是拉、更改并推回
hosts
文件。注意:要做到这一点,您的设备必须具有根目录

adb pull /etc/hosts ./<your_computer_directory> # get hosts file from device 
如果没有根规则,就无法将其推回。因此,将其推送到某个tmp用户目录中:

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

利润

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

  • 从AdAway菜单中,选择“您的列表”
  • 选择标签为“白色”的(第二个)选项卡
  • 点击操作栏上的加号按钮,将出现主机名提示
  • 输入
    *.crashlytics.com
    ,然后点击添加
  • 它应该显示为“白色”选项卡下的列表项,确保选中它
  • 返回主菜单,然后下载并再次应用广告屏蔽
您的设备现在应该能够访问Crashlytics API

注意:即使你没有安装广告屏蔽软件,一些手机制造商也会在他们的设备上启用默认黑名单,作为某种广告屏蔽功能。通常,有一个设置选项来禁用它。但是你的里程数可能会有所不同。您可以检查android设备的主机文件(
/etc/hosts
),以确保它不是来自您的制造商(如果您不是根用户)。
此外,VPN软件可能会通过DNS阻止主机,因此一定要检查这一点。

Hi@hemal我使用了fabric crashlytics,并在问题中遇到了相同的错误。我确信我的手机里没有任何广告屏蔽软件。但是有什么办法可以解决这个问题吗?这是公认的答案吗?为什么我没有任何广告屏蔽软件?
adb push ./<your_computer_directory>/hosts /mnt/sdcard/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