ClassNotFoundException:未在 Android 9 上找到 class SchemeRegistry
ClassNotFoundException: Didn't find class SchemeRegistry on Android 9
我正在使用以下 OkHttp API 来设置 SSL Factory:
OkHttpClient.Builder.sslSocketFactory(sslContext.getSocketFactory(), x509TrustManager);
要获得 sslContext
我需要创建 SchemeRegistry
:
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("https", new SslSocketFactory(sslContext), 443));
不过,这会导致以下崩溃:
ClassNotFoundException: Didn't find class "org.apache.http.conn.scheme.SchemeRegistry"
我该怎么做才能避免崩溃?
过时的 SchemeRegistry
class 在 Android P 上不再可用。
如果您仍然 want/need 使用旧版 HTTP API,除了
useLibrary 'org.apache.http.legacy'
在 build.gradle
的 android
部分,您还需要添加
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
到您的清单中的 <application>
标记。
我正在使用以下 OkHttp API 来设置 SSL Factory:
OkHttpClient.Builder.sslSocketFactory(sslContext.getSocketFactory(), x509TrustManager);
要获得 sslContext
我需要创建 SchemeRegistry
:
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("https", new SslSocketFactory(sslContext), 443));
不过,这会导致以下崩溃:
ClassNotFoundException: Didn't find class "org.apache.http.conn.scheme.SchemeRegistry"
我该怎么做才能避免崩溃?
过时的 SchemeRegistry
class 在 Android P 上不再可用。
如果您仍然 want/need 使用旧版 HTTP API,除了
useLibrary 'org.apache.http.legacy'
在 build.gradle
的 android
部分,您还需要添加
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
到您的清单中的 <application>
标记。