Okhttp: java.lang.ExceptionInInitializerError for Android < 4.4

Created on 17 Jun 2020  路  5Comments  路  Source: square/okhttp

We have an issue that is reported from Crashlytics and it arise only for Android < 4.4 version.

implementation "com.squareup.okhttp3:okhttp:4.7.2"
implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"

java.lang.ExceptionInInitializerError:
at okhttp3.internal.platform.Platform$Companion.findAndroidPlatform (Platform.java:219)
at okhttp3.internal.platform.Platform$Companion.findPlatform (Platform.java:212)
at okhttp3.internal.platform.Platform$Companion.access$findPlatform (Platform.java:169)
at okhttp3.internal.platform.Platform. (Platform.java:170)
at okhttp3.OkHttpClient. (OkHttpClient.java:237)
at okhttp3.OkHttpClient$Builder.build (OkHttpClient.java:1069)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule.providesFiamController (PicassoModule.java:46)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.providesFiamController (PicassoModule_ProvidesFiamControllerFactory.java:43)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.get (PicassoModule_ProvidesFiamControllerFactory.java:32)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.get (PicassoModule_ProvidesFiamControllerFactory.java:11)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.FiamImageLoader_Factory.get (FiamImageLoader_Factory.java:21)
at com.google.firebase.inappmessaging.display.internal.FiamImageLoader_Factory.get (FiamImageLoader_Factory.java:8)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay_Factory.get (FirebaseInAppMessagingDisplay_Factory.java:57)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay_Factory.get (FirebaseInAppMessagingDisplay_Factory.java:16)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.injection.components.DaggerAppComponent.providesFirebaseInAppMessagingUI (DaggerAppComponent.java:80)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.buildFirebaseInAppMessagingUI (FirebaseInAppMessagingDisplayRegistrar.java:74)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.access$lambda$0 (FirebaseInAppMessagingDisplayRegistrar.java)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar$$Lambda$1.create (FirebaseInAppMessagingDisplayRegistrar.java)
at com.google.firebase.components.ComponentRuntime.lambda$new$0 (ComponentRuntime.java:69)
at com.google.firebase.components.ComponentRuntime$$Lambda$1.get (ComponentRuntime.java)
at com.google.firebase.components.Lazy.get (Lazy.java:53)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents (ComponentRuntime.java:158)
at com.google.firebase.FirebaseApp.initializeAllApis (FirebaseApp.java:563)
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:304)
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:268)
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:253)
at com.google.firebase.provider.FirebaseInitProvider.onCreate (FirebaseInitProvider.java:51)
at android.content.ContentProvider.attachInfo (ContentProvider.java:1616)
at android.content.ContentProvider.attachInfo (ContentProvider.java:1587)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo (FirebaseInitProvider.java:45)
at android.app.ActivityThread.installProvider (ActivityThread.java:5081)
at android.app.ActivityThread.installContentProviders (ActivityThread.java:4673)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4613)
at android.app.ActivityThread.access$1800 (ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1298)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:136)
at android.app.ActivityThread.main (ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative (Method.java)
at java.lang.reflect.Method.invoke (Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:895)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:711)
at dalvik.system.NativeStart.main (NativeStart.java)
Caused by: java.lang.IllegalStateException:
at okhttp3.internal.platform.AndroidPlatform. (AndroidPlatform.java:151)
at okhttp3.internal.platform.Platform$Companion.findAndroidPlatform (Platform.java:219)
at okhttp3.internal.platform.Platform$Companion.findPlatform (Platform.java:212)
at okhttp3.internal.platform.Platform$Companion.access$findPlatform (Platform.java:169)
at okhttp3.internal.platform.Platform. (Platform.java:170)
at okhttp3.OkHttpClient. (OkHttpClient.java:237)
at okhttp3.OkHttpClient$Builder.build (OkHttpClient.java:1069)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule.providesFiamController (PicassoModule.java:46)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.providesFiamController (PicassoModule_ProvidesFiamControllerFactory.java:43)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.get (PicassoModule_ProvidesFiamControllerFactory.java:32)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.get (PicassoModule_ProvidesFiamControllerFactory.java:11)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.FiamImageLoader_Factory.get (FiamImageLoader_Factory.java:21)
at com.google.firebase.inappmessaging.display.internal.FiamImageLoader_Factory.get (FiamImageLoader_Factory.java:8)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay_Factory.get (FirebaseInAppMessagingDisplay_Factory.java:57)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay_Factory.get (FirebaseInAppMessagingDisplay_Factory.java:16)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.injection.components.DaggerAppComponent.providesFirebaseInAppMessagingUI (DaggerAppComponent.java:80)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.buildFirebaseInAppMessagingUI (FirebaseInAppMessagingDisplayRegistrar.java:74)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.access$lambda$0 (FirebaseInAppMessagingDisplayRegistrar.java)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar$$Lambda$1.create (FirebaseInAppMessagingDisplayRegistrar.java)
at com.google.firebase.components.ComponentRuntime.lambda$new$0 (ComponentRuntime.java:69)
at com.google.firebase.components.ComponentRuntime$$Lambda$1.get (ComponentRuntime.java)
at com.google.firebase.components.Lazy.get (Lazy.java:53)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents (ComponentRuntime.java:158)
at com.google.firebase.FirebaseApp.initializeAllApis (FirebaseApp.java:563)
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:304)
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:268)
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:253)
at com.google.firebase.provider.FirebaseInitProvider.onCreate (FirebaseInitProvider.java:51)
at android.content.ContentProvider.attachInfo (ContentProvider.java:1616)
at android.content.ContentProvider.attachInfo (ContentProvider.java:1587)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo (FirebaseInitProvider.java:45)
at android.app.ActivityThread.installProvider (ActivityThread.java:5081)
at android.app.ActivityThread.installContentProviders (ActivityThread.java:4673)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4613)
at android.app.ActivityThread.access$1800 (ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1298)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:136)
at android.app.ActivityThread.main (ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative (Method.java)
at java.lang.reflect.Method.invoke (Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:895)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:711)
at dalvik.system.NativeStart.main (NativeStart.java)

bug

All 5 comments

https://github.com/square/okhttp

OkHttp works on Android 5.0+ (API level 21+) and on Java 8+.

You should use 3.12.12

The OkHttp 3.12.x branch supports Android 2.3+ (API level 9+) and Java 7+.

Hi, thanks for fast reply. Unfortunately this does not solve the problem.

Changed to :

implementation "com.squareup.okhttp3:logging-interceptor:3.12.12"
implementation "com.squareup.okhttp3:okhttp:3.12.12"

java.lang.ExceptionInInitializerError
at okhttp3.OkHttpClient.(OkHttpClient.kt:237)
at okhttp3.OkHttpClient$Builder.build(OkHttpClient.kt:1069)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule.providesFiamController(PicassoModule.java:46)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.providesFiamController(PicassoModule_ProvidesFiamControllerFactory.java:43)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.get(PicassoModule_ProvidesFiamControllerFactory.java:32)
at com.google.firebase.inappmessaging.display.internal.injection.modules.PicassoModule_ProvidesFiamControllerFactory.get(PicassoModule_ProvidesFiamControllerFactory.java:11)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.FiamImageLoader_Factory.get(FiamImageLoader_Factory.java:21)
at com.google.firebase.inappmessaging.display.internal.FiamImageLoader_Factory.get(FiamImageLoader_Factory.java:8)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay_Factory.get(FirebaseInAppMessagingDisplay_Factory.java:57)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay_Factory.get(FirebaseInAppMessagingDisplay_Factory.java:16)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.injection.components.DaggerAppComponent.providesFirebaseInAppMessagingUI(DaggerAppComponent.java:80)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.buildFirebaseInAppMessagingUI(FirebaseInAppMessagingDisplayRegistrar.java:74)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.access$lambda$0(FirebaseInAppMessagingDisplayRegistrar.java)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar$$Lambda$1.create(FirebaseInAppMessagingDisplayRegistrar.java)
at com.google.firebase.components.ComponentRuntime.lambda$new$0(com.google.firebase:firebase-components@@16.0.0:69)
at com.google.firebase.components.ComponentRuntime$$Lambda$1.get(com.google.firebase:firebase-components@@16.0.0)
at com.google.firebase.components.Lazy.get(com.google.firebase:firebase-components@@16.0.0:53)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(com.google.firebase:firebase-components@@16.0.0:158)
at com.google.firebase.FirebaseApp.initializeAllApis(com.google.firebase:firebase-common@@19.3.0:563)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:304)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:268)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:253)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@19.3.0:51)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1058)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(com.google.firebase:firebase-common@@19.3.0:45)
at android.app.ActivityThread.installProvider(ActivityThread.java:4560)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4190)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4132)
at android.app.ActivityThread.access$1300(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.

Since your new stacktrace references OkHttpClient.kt and not OkHttpClient.java, it's likely you aren't getting the version of OkHttp you are specifying.

Indeed it is. So basically if an application supports minsdk 16, than we can't use okhttp version greater than 4?

Actually you are limited to < 3.13

3.12.12 currently

Was this page helpful?
0 / 5 - 0 ratings