не удается загрузить классы сокетов Android java.lang.Исключение noSuchMethod: com.android.org.призыв.OpenSSLSocketImpl.setusesession [логический]

#android #android-studio #exception #retrofit2

Вопрос:

Привет всем, у меня возникла проблема с моим модифицированным кодом при вызове api, я публикую трассировку стека ниже, пожалуйста, взгляните на нее:

     Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp: unable to load android socket classes
2021-09-25 19:02:08.588 30949-30949/W/OkHttp: java.lang.NoSuchMethodException: com.android.org.conscrypt.OpenSSLSocketImpl.setUseSessionTickets [boolean]
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at java.lang.Class.getMethod(Class.java:2072)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at java.lang.Class.getDeclaredMethod(Class.java:2050)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.android.AndroidSocketAdapter.<init>(AndroidSocketAdapter.kt:34)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.android.StandardAndroidSocketAdapter.<init>(StandardAndroidSocketAdapter.kt:31)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.android.StandardAndroidSocketAdapter$Companion.buildIfSupported(StandardAndroidSocketAdapter.kt:57)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.android.StandardAndroidSocketAdapter$Companion.buildIfSupported$default(StandardAndroidSocketAdapter.kt:50)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.AndroidPlatform.<init>(AndroidPlatform.kt:44)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.AndroidPlatform$Companion.buildIfSupported(AndroidPlatform.kt:239)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.Platform$Companion.findPlatform(Platform.kt:211)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.Platform$Companion.access$findPlatform(Platform.kt:179)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.internal.platform.Platform.<clinit>(Platform.kt:180)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.OkHttpClient.<init>(OkHttpClient.kt:219)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at okhttp3.OkHttpClient$Builder.build(OkHttpClient.kt:955)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at .ui.retroPack.RetrofitClient.getClient(RetrofitClient.java:35)
2021-09-25 19:02:08.588 30949-30949/W/OkHttp:     at .ui.retroPack.RetrofitClient.getAPIService(RetrofitClient.java:52)
2021-09-25 19:02:08.588 30949-30949/
 

Это java.lang.Исключение NoSuchMethodException: возникает только при первом установлении соединения с сервером, хотя api по-прежнему получает успешный ответ, и все работает нормально в отладочной сборке, и когда я снова нажимаю на api, он не показывает то же сообщение об исключении в журнале регистрации Android studio.

Я сталкиваюсь с проблемой с приложением в рабочей среде, я получаю то же сообщение об исключении и в рабочей среде, и вызывается api, и я также вижу ответ, но на рабочем экране, не переходя на следующий экран, как это должно быть. Является ли эта проблема из-за java.lang.noSuchMethod Исключение это исключение или есть какая-то другая проблема с моим приложением в производстве. Если у кого-нибудь есть какое-либо возможное решение или предложение, пожалуйста, поделитесь. Это будет мне очень полезно, спасибо.

Комментарии:

1. Есть какое-нибудь решение по этому поводу?

2. @AndroidDev123 смотрите мой ответ ниже. Надеюсь, это сработает для вас.

Ответ №1:

Я столкнулся с аналогичной ошибкой в API 30 и com.squareup.okhttp3:okhttp:4.2.2 .

Проблема заключалась в том, что OkHttp использует отражение для доступа к некоторым частям основного Android SDK. Таким образом, OHTTP тесно связан с версией API.

В моем случае обновление com.squareup.okhttp3:okhttp:4.9.3 исправило проблему, но требуемая версия будет зависеть от вашего целевого SDK.

Более подробная информация здесь: https://github.com/amplitude/Amplitude-Android/issues/309