Skip to content

Stormpath SDK crashes if Retrofit is used #36

Description

@DominicD

It seems that Strompath SDK uses com.squareup.okhttp3:okhttp:3.1.2 which happens to be a problem if I also use retrofit.
This is the log I get:

E/AndroidRuntime: FATAL EXCEPTION: Stormpath Http Dispatcher Process: com.example.noq.noq, PID: 28358 java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/http/HttpEngine; at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:219) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179) at okhttp3.RealCall$AsyncCall.execute(RealCall.java:129) at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) 02-26 18:42:59.862 28358-28658/com.example.noq.noq E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.internal.http.HttpEngine" on path: DexPathList[[dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-support-annotations-25.1.0_2846279fca1dfb66d05499be1393db77d5988d85-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-scanditsdk-android-5.1.0_eed328481af32bc982e6dcefac876383cf062fb0-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-rxrelay-2.0.0_4393c3dee2a0036bb461303903a604627ca5f7ec-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-rxjava-2.0.4_1cc002c6641b7c97b50df13a2983206117c8d3a9-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-retrofit2-rxjava2-adapter-1.0.0_d99487ab33af021214285a1b3ebeace8fc761e8f-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-retrofit-2.2.0_24534348a92cc8f33cc21f30be9a39060b33a646-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-reactive-streams-1.0.0_15e8605c1c67f559aa28e458b60e7898b6a18758-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-picasso-2.5.2_744a1a6af30295e0c9e724df1a526efa958509ef-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-okio-1.11.0_6b723ec26b2c36ccffc759ac5b154cf36285fb29-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-okhttp-3.6.0_2ef602b3bbd061559b4816f09ade04ffc34d5992-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moxy-app-compat-1.4.5_fdf0146ace81d2fb409b0b90cecd298b2db443b3-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moxy-android-1.4.5_4533750a09e7f9561dba79046873dc29d4e063c0-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moxy-1.4.5_ae879d2498905e1821bdd3125f6001dec6a2f78e-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moshi-1.1.0_2115cb3a6738d24b7d8ea9c3ea6866b782b064b9-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-logging-interceptor-3.1.2_bd769c8a7fca5733cd928c73a9d51df3e1cca06b-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-io.reactivex.rxjava2-rxandroid-2.0.1_7b7362975c9e1a2fd780a9ea75d3843ec22f1d1c-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-io.card-android-sdk-5.5.0_90001f267d88790f577cdd80869bfaeaf295aada-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-gson-2.7_ac753a502a58b0f7ff8d540a82afe551bff57762-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-converter-gson-2.1.0_57f7eec7348edaf870fd767eda56e3bfbe30863c-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-constraint-layout-solver-1.0.0_772160a327dd64eab9e1b9bf4584879112b8a869-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.stormpath.sdk-stormpath-sdk-android 02-26 18:42:59.875 28358-28658/com.example.noq.noq E/AndroidRuntime: -2.0_ac54960b4e664d6b3eba0672ebc4668365b2982f-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.paypal.sdk-paypal-android-sdk-2.15.3_906f63da0ee53c30b5f6764bd3dcafd873a1f314-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.google.android.gms-play-services-vision-10.0.1_52f0cb163aea49ac27b71ccf67451dc8e29408ea-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.google.android.gms-play-services-tasks-10.0.1_f86d1460bf7cc9529ff2e7fae30b73b898ed871f-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.google.android.gms-play-services-basement-10.0.1_d8cef71b0b116606dbe6f7639fc17f69e0b4f2a5-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.google.android.gms-play-services-base-10.0.1_09fff8038baf8d21f752fe16a5062178f6e191ad-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support.constraint-constraint-layout-1.0.0_af413e7f6405b0df10c7954b0029dc9888bcd093-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-transition-25.1.0_a3840f75a2d1132cf51ddd2ee6722fdce1176391-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-support-vector-drawable-25.1.0_ed6db6d0ea1ab64ab4ba64412564d350a8136cf6-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-support-v4-25.1.0_7fa19a15fb50beb0f25fb87a15ee6da09d4d4b05-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-support-media-compat-25.1.0_21e735725f3c9e8eecf8b3488e734d16955e9f92-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-support-fragment-25.1.0_ce62c4777fafea1fa3a3e66a8572a56b1b818ddf-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-support-core-utils-25.1.0_9b2338a7e8542b6ba4840a34278020e8d13ebb37-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-support-core-ui-25.1.0_06aa38440fdf176f6a53acb6ea45070df986707f-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-support-compat-25.1.0_5463ae65073f2c00ba9d7c99ae87100e0141612b-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-recyclerview-v7-25.1.0_be17cf7d86913b352e81f78e24188a1fdbe60dc4-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-design-25.1.0_2a67580d3170eef81162b67606052bff1260e382-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-customtabs-23.3.0_7bd090753de8c175011db4dfe5fa43aa018e9259-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-appcompat-v7-25.1.0_3ab44d8670d63507c1fe400a8a7c52c042319baf-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.android.support-animated-vector-drawable-25.1.0_a73ada558d288a780a7031c1ad115d8f2a2b5c73-classes.dex"],nativeLibraryDirectories=[/data/app/com.example.noq.noq-1/lib/arm64, /data/app/com.example.noq.noq-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader.findClass(IncrementalClassLoader.java:90) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 19 more 02-26 18:42:59.880 28358-28658/com.example.noq.noq D/Error: ERR: exClass=java.lang.ClassNotFoundException 02-26 18:42:59.880 28358-28658/com.example.noq.noq D/Error: ERR: exMsg=Didn't find class "okhttp3.internal.http.HttpEngine" on path: DexPathList[[dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-support-annotations-25.1.0_2846279fca1dfb66d05499be1393db77d5988d85-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-scanditsdk-android-5.1.0_eed328481af32bc982e6dcefac876383cf062fb0-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-rxrelay-2.0.0_4393c3dee2a0036bb461303903a604627ca5f7ec-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-rxjava-2.0.4_1cc002c6641b7c97b50df13a2983206117c8d3a9-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-retrofit2-rxjava2-adapter-1.0.0_d99487ab33af021214285a1b3ebeace8fc761e8f-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-retrofit-2.2.0_24534348a92cc8f33cc21f30be9a39060b33a646-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-reactive-streams-1.0.0_15e8605c1c67f559aa28e458b60e7898b6a18758-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-picasso-2.5.2_744a1a6af30295e0c9e724df1a526efa958509ef-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-okio-1.11.0_6b723ec26b2c36ccffc759ac5b154cf36285fb29-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-okhttp-3.6.0_2ef602b3bbd061559b4816f09ade04ffc34d5992-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moxy-app-compat-1.4.5_fdf0146ace81d2fb409b0b90cecd298b2db443b3-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moxy-android-1.4.5_4533750a09e7f9561dba79046873dc29d4e063c0-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moxy-1.4.5_ae879d2498905e1821bdd3125f6001dec6a2f78e-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-moshi-1.1.0_2115cb3a6738d24b7d8ea9c3ea6866b782b064b9-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-logging-interceptor-3.1.2_bd769c8a7fca5733cd928c73a9d51df3e1cca06b-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-io.reactivex.rxjava2-rxandroid-2.0.1_7b7362975c9e1a2fd780a9ea75d3843ec22f1d1c-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-io.card-android-sdk-5.5.0_90001f267d88790f577cdd80869bfaeaf295aada-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-gson-2.7_ac753a502a58b0f7ff8d540a82afe551bff57762-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-converter-gson-2.1.0_57f7eec7348edaf870fd767eda56e3bfbe30863c-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-constraint-layout-solver-1.0.0_772160a327dd64eab9e1b9bf4584879112b8a869-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-com.stormpath.sdk-stormpath-sdk-android-2.0_ac54960b4e664d6b3eba0672ebc4668365b2982f-classes.dex", dex file "/dat 02-26 18:42:59.880 28358-28658/com.example.noq.noq D/Error: ERR: file=BaseDexClassLoader.java 02-26 18:42:59.880 28358-28658/com.example.noq.noq D/Error: ERR: class=dalvik.system.BaseDexClassLoader 02-26 18:42:59.880 28358-28658/com.example.noq.noq D/Error: ERR: method=findClass line=56 02-26 18:42:59.881 28358-28658/com.example.noq.noq D/Error: ERR: stack=java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/http/HttpEngine; at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:219) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179) at okhttp3.RealCall$AsyncCall.execute(RealCall.java:129) at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.internal.http.HttpEngine" on path: DexPathList[[dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-support-annotations-25.1.0_2846279fca1dfb66d05499be1393db77d5988d85-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.example.noq.noq/files/instant-r

The Solution I came up with I found here:
http://stackoverflow.com/questions/31402447/dont-use-later-library-version-from-transitive-dependency-in-gradle

So I added this in my build.gradle for the Project:

allprojects {
configurations.all {
resolutionStrategy.force 'com.squareup.okhttp3:okhttp:3.1.2'
}
repositories {
jcenter()
}
}

This seems to work, however I have no idea if this affects Retrofit or the other libraries I use so I don't know if this is a good workaround. Does anybody know a better solution?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions