无法加载 android 套接字类 java.lang.NoSuchMethodException: com.android.org.conscrypt.OpenSSLSocketImpl.setUseSessionTickets [boolean]

Uma*_*yay 12 android exception android-studio 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/
Run Code Online (Sandbox Code Playgroud)

这个 java.lang.NoSuchMethodException: 仅在第一次与服务器建立连接时发生,尽管 api 仍然获得成功响应,并且在调试构建中一切正常,但当我再次点击 api 时,它没有显示相同的内容android studio logcat 中的异常消息。

我在生产中遇到应用程序的问题,我在生产中也收到相同的异常消息,并且正在调用 api,我也可以看到响应,但在生产屏幕中没有按应有的方式移动到下一个屏幕。这个问题是因为 java.lang.NoSuchMethodException 这个异常还是我的应用程序在生产中存在其他问题。如果有人有任何可能的解决方案或建议,请分享。这对我会有很大的帮助,谢谢。

Jus*_*ler 9

我在 API 30 和com.squareup.okhttp3:okhttp:4.2.2.

问题是 OkHttp 使用反射来访问核心 Android SDK 的某些部分。所以OkHttp与API版本是强耦合的。

就我而言,升级以com.squareup.okhttp3:okhttp:4.9.3解决问题,但所需的版本将取决于您的目标 SDK。

更多信息在这里: https: //github.com/amplitude/Amplitude-Android/issues/309