2014-07-06 21 views
5

Ricevo il seguente errore all'avvio della mia app. Crashlytics configurato con il plug-in - voci appropriate in build.gradle, AndroidManifest.xml, crashlytics.properties esiste. Avvio di Crashlytics dalla mia classe Application. Lo capisco ogni volta. Non sono dietro un proxy o altro.Connessione di Crashlytics rifiutata - impossibile connettersi a non riuscita a connettersi a api.crashlytics.com

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) 

risposta

12

Hemal da Crashlytics qui. Puoi verificare se un software di blocco degli annunci interferisce con la connessione?

+2

Ciao @hemal ho usato crashlytics del tessuto e ho ottenuto lo stesso errore con la domanda. Sono sicuro di non avere alcun software di blocco degli annunci nel mio telefono. ma qualche idea per risolvere questo ?? –

4

Di fronte allo stesso problema, AdAway ha bloccato crashlytics.com. Ho appena aggiunto questo host alla lista bianca.

1

Verificare se il dispositivo è stato installato con qualsiasi tipo di software di blocco degli annunci o se il file host è stato modificato per bloccare gli annunci. Se il dispositivo è rootato, è possibile controllare il file hosts sotto/etc/hosts per la riga "127.0.0.1 crashlytics.com". Probabilmente questa linea sta causando quel problema.

Aggiungi crashlytics.com all'elenco bianco di AdAway e testa la tua app.

Acclamazioni

5

ho avuto lo stesso problema su Xiaomi M4. Come accennato in precedenza se non si dispone di un'applicazione di blocco degli annunci, il motivo principale è il file /ets/hosts.

È possibile controllare questo indovinare da linea di comando:

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

e se si vede qualcosa di simile a questo elenco di linee allora è che il problema che si sta cercando:

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 

Per risolvere il problema dovresti commentarli. L'idea di come farlo ho trovato here, ma non ho potuto modificare il file con vi. Quindi ho appena estratto, modificato e spostato il file hosts. Sii attento: il tuo dispositivo deve essere radicato per farlo.

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

solo linee di commento come questo:

#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 

Non può spingere indietro senza regole di root. Quindi spingerla in qualche directory utente tmp:

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

Quindi immettere come root e sostituire il file /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 

profitto!

Problemi correlati