Recentemente ho analizzato segnalazioni di crash formano la mia app e hanno trovato diverse tracce di stack che punta a okhttp
Android | Ottenere la versione OkHTTP Biblioteca in fase di esecuzione
mia app non dipende okhttp
esplicitamente.
per quanto ne so okhttp
versione dipende versione del sistema operativo Android, e okhttp
libreria si è posta sul dispositivo
Per aiutare con la risoluzione dei problemi, ho deciso di registrare okhttp
versione della libreria, e sembra che ho trovato diverse classi utili per questo
Giusto per fare in modo che non mi sbaglio ho preso com.android.okhttp.internal.http.HttpURLConnectionImpl
modulo di classe stack trace e ho cercato di Class.forName
esso - il successo
Inoltre ho notato che com.squareup.okhttp
trasformati a com.android.okhttp
sembra al accumulo di tempo, in modo del tutto ho provato tali varianti
Class.forName("com.android.okhttp.internal.Version")
->java.lang.ClassNotFoundException
Class.forName("com.squareup.okhttp.internal.Version")
->java.lang.ClassNotFoundException
Class.forName("okhttp3.internal.Version")
->java.lang.ClassNotFoundException
Class.forName("com.android.okhttp.internal.http.HttpURLConnectionImpl")
-> successo
Qualcuno può spiegare perché? Cosa mi sono perso?
Aggiornamento
ho tirato okhttp.jar dal mio dispositivo adb pull /system/framework/okhttp.jar
ma contiene solo MANIFEST.MF
in incidente rapporti si conosce la versione della vostra applicazione, e ammesso che abbiate almeno un controllo di versione semplice, dovresti sapere quale versione di okhttp è stata fornita con quella versione della tua app. – laalto
La mia app non dipende da 'okhttp' in modo esplicito – CAMOBAP