Недавно я проанализировал отчеты о сбоях формируют мое приложение и нашел несколько трассировки стека, который указывает на okhttp
Android | Получить версию OkHTTP библиотеки во время выполнения
Мое приложение не зависит от okhttp
явно.
AFAIK okhttp
версия зависит от версии ОС Android, и okhttp
библиотеки самой размещена на устройстве
Чтобы помочь в устранении неполадок, я решил войти okhttp
версии библиотеки, и похожа, что я нашел несколько полезных классов для этого
Просто чтобы убедиться, что я не ошибаюсь, я принял com.android.okhttp.internal.http.HttpURLConnectionImpl
форму класса стека, трассировку и попытался Class.forName
это - успех
Кроме того, я заметил, что com.squareup.okhttp
превращается в com.android.okhttp
выглядит как при построении времени, поэтому я попытался полностью такие варианты
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")
-> Успех
Может кто-нибудь объяснить, почему? Что я пропустил?
Update
Я вытащил okhttp.jar из моего устройства adb pull /system/framework/okhttp.jar
но содержит MANIFEST.MF
только
В аварии отчеты вы знаете версию вашего приложения, и если у вас есть по крайней мере, некоторый простой контроль версий на месте, вы должны знать, какую версию okhttp предлагает эта версия вашего приложения. – laalto
Мое приложение не зависит от 'okhttp' явно – CAMOBAP