当前位置: 首页 > 知识库问答 >
问题:

Okhttp中的异常InInitializerError。带多索引的生成器

范兴文
2023-03-14

我在运行Kitkat 4.4.2并启用多索引的VM上遇到异常InInitializerError。

java.lang.ExceptionInInitializerError
    at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
    at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
    at okhttp3.OkHttpClient$Builder.build(OkHttpClient.java:1015)
    at myapp.utils.Utils.getHttpClientBuilder(Utils.java:131)
    at myapp.fragments.FragmentHome.getHome(FragmentHome.java:326)
    at 
myapp.fragments.FragmentHome.onViewCreated(FragmentHome.java:135)

我有以下图书馆:

implementation 'jp.wasabeef:recyclerview-animators:3.0.0'
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.ogaclejapan.smarttablayout:utils-v4:2.0.0@aar'
implementation 'com.duolingo.open:rtl-viewpager:1.0.3'
implementation 'com.squareup.retrofit2:retrofit-converters:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.14.1'
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.karumi:dexter:5.0.0'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'org.jsoup:jsoup:1.11.3'
implementation 'saschpe.android:customtabs:2.0.0'

我正在使用此代码创建改装连接

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(Constants.API_LINK)
            .addConverterFactory(GsonConverterFactory.create())
            .client(Utils.getHttpClientBuilder())
            .build();

并使用此代码获取构建器的实例

public static OkHttpClient getHttpClientBuilder(){
    return new OkHttpClient.Builder()
            .readTimeout(60, TimeUnit.SECONDS)
            .connectTimeout(60, TimeUnit.SECONDS)
            .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
            .build();
}

getHttpClientBuilder()方法中调用“build()”时会发生异常。

我还在AndroidManifest中分配了一个默认应用程序。xml,它扩展了多索引应用程序,并具有多索引。安装(本) 在onCreate(Bundle Bundle)中。

这个问题只发生在Kitkat。知道为什么吗?我试着将Okhttp库降级并升级到最新版本,但没有成功。

编辑:

从Retroft构建器中删除客户端不会更改任何内容。错误仍然显示。

共有2个答案

夏侯玄天
2023-03-14

显示应用程序依存关系树

+--- com.ogaclejapan.smarttablayout:utils-v4:2.0.0
+--- com.duolingo.open:rtl-viewpager:1.0.3
+--- com.squareup.retrofit2:retrofit-converters:2.5.0
+--- com.squareup.okhttp3:logging-interceptor:3.14.1
|    \--- com.squareup.okhttp3:okhttp:3.14.1 (*)
+--- com.squareup.okhttp3:okhttp:3.12.0 -> 3.14.1 (*)

您应该使用3.12.0日志拦截器

implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
段志
2023-03-14

OkHttp 3.13需要Android 5

square/okhttp github页面提到最低要求是Android 5

Github链接

中等链接

正如@Jaeger所提到的那样,@fancyjyl要在低于Android 5的版本中使用,我们需要使用OkHttp 3.12。但不建议使用它。

 类似资料:
  • 问题内容: 我有一个生成器和一个使用它的函数: 如果生成器引发异常,我想在使用者函数中处理该异常,然后继续使用迭代器,直到耗尽为止。请注意,我不想在生成器中有任何异常处理代码。 我想到了类似的东西: 但这对我来说看起来很尴尬。 问题答案: 这也是我不确定是否正确/优雅处理的事情。 我要做的是从生成器中获取一个,然后将其提升到其他位置。喜欢: 这样,我仍然继承了Exception而没有引发它,这将导

  • 我正在测试新的GUI builder,只需点击GUI的new stuff,就无法通过运行时异常: 我还没有添加一行自己的代码。至少我什么都不知道:)有人会帮我吗?

  • 我在我的Android应用程序中使用了一个自定义的和改型客户端,它在某些特定情况下会引发异常。我正试着用Kotlin Coroutines来让它工作。

  • 我有一个奇怪的问题。让我们从错误开始: 这是在我启动tomcat时给出的(在一个类中由于异常而中断调试之后)。我已经尝试注释了所有JSP中的所有代码,并检查了每个文件是否都在部署目录中。一切看起来都很好,奇怪的是应用程序运行良好。我找不到问题,也不知道从哪里开始找! 有人可以帮助我,或者已经有了类似的问题? 非常感谢。

  • 由邮递员生成以下代码: 此请求在服务器上生成一个大小为0 Kb的文件。而且我无法放文件。所以,我必须放一个这样的文件: 但我有一个超时选项。 如何使用这种Rest API放置文件?