Gson: NoSuchMethodException для устройств Android 4.2.2

Я получаю странную проблему/исключение NoSuchMethodException для устройств JellyBean (4.2.2) в моей рабочей версии. Прикреплен скриншот трассировки стека.

Вот моя версия Gson:

    implementation 'com.google.code.gson:gson:2.8.4'

Я получаю эту ошибку каждый раз, когда пытаюсь вызвать gson.fromJson или gson.toJson.

enter image description here

Вот мое дерево зависимостей:

+--- project :Scratch
|    \--- com.android.support:appcompat-v7:23.4.0 -> 27.1.1
|         +--- com.android.support:support-annotations:27.1.1
|         +--- com.android.support:support-core-utils:27.1.1
|         |    +--- com.android.support:support-annotations:27.1.1
|         |    \--- com.android.support:support-compat:27.1.1
|         |         +--- com.android.support:support-annotations:27.1.1
|         |         \--- android.arch.lifecycle:runtime:1.1.0 -> 1.1.1
|         |              +--- android.arch.lifecycle:common:1.1.1
|         |              |    \--- com.android.support:support-annotations:26.1.0 -> 27.1.1
|         |              +--- android.arch.core:common:1.1.1
|         |              |    \--- com.android.support:support-annotations:26.1.0 -> 27.1.1
|         |              \--- com.android.support:support-annotations:26.1.0 -> 27.1.1
|         +--- com.android.support:support-fragment:27.1.1
|         |    +--- com.android.support:support-compat:27.1.1 (*)
|         |    +--- com.android.support:support-core-ui:27.1.1
|         |    |    +--- com.android.support:support-annotations:27.1.1
|         |    |    +--- com.android.support:support-compat:27.1.1 (*)
|         |    |    \--- com.android.support:support-core-utils:27.1.1 (*)
|         |    +--- com.android.support:support-core-utils:27.1.1 (*)
|         |    +--- com.android.support:support-annotations:27.1.1
|         |    +--- android.arch.lifecycle:livedata-core:1.1.0 -> 1.1.1
|         |    |    +--- android.arch.lifecycle:common:1.1.1 (*)
|         |    |    +--- android.arch.core:common:1.1.1 (*)
|         |    |    \--- android.arch.core:runtime:1.1.1
|         |    |         +--- com.android.support:support-annotations:26.1.0 -> 27.1.1
|         |    |         \--- android.arch.core:common:1.1.1 (*)
|         |    \--- android.arch.lifecycle:viewmodel:1.1.0 -> 1.1.1
|         |         \--- com.android.support:support-annotations:26.1.0 -> 27.1.1
|         +--- com.android.support:support-vector-drawable:27.1.1
|         |    +--- com.android.support:support-annotations:27.1.1
|         |    \--- com.android.support:support-compat:27.1.1 (*)
|         \--- com.android.support:animated-vector-drawable:27.1.1
|              +--- com.android.support:support-vector-drawable:27.1.1 (*)
|              \--- com.android.support:support-core-ui:27.1.1 (*)
+--- com.squareup.okhttp3:logging-interceptor:3.9.0
|    \--- com.squareup.okhttp3:okhttp:3.9.0
|         \--- com.squareup.okio:okio:1.13.0
+--- com.android.support:design:27.1.1
|    +--- com.android.support:support-v4:27.1.1
|    |    +--- com.android.support:support-compat:27.1.1 (*)
|    |    +--- com.android.support:support-media-compat:27.1.1
|    |    |    +--- com.android.support:support-annotations:27.1.1
|    |    |    \--- com.android.support:support-compat:27.1.1 (*)
|    |    +--- com.android.support:support-core-utils:27.1.1 (*)
|    |    +--- com.android.support:support-core-ui:27.1.1 (*)
|    |    \--- com.android.support:support-fragment:27.1.1 (*)
|    +--- com.android.support:appcompat-v7:27.1.1 (*)
|    +--- com.android.support:recyclerview-v7:27.1.1
|    |    +--- com.android.support:support-annotations:27.1.1
|    |    +--- com.android.support:support-compat:27.1.1 (*)
|    |    \--- com.android.support:support-core-ui:27.1.1 (*)
|    \--- com.android.support:transition:27.1.1
|         +--- com.android.support:support-annotations:27.1.1
|         \--- com.android.support:support-compat:27.1.1 (*)
+--- com.android.support:palette-v7:27.1.1
|    +--- com.android.support:support-compat:27.1.1 (*)
|    \--- com.android.support:support-core-utils:27.1.1 (*)
+--- com.android.support:recyclerview-v7:27.1.1 (*)
+--- com.bignerdranch.android:expandablerecyclerview:3.0.0-RC1
|    +--- com.android.support:recyclerview-v7:24.2.1 -> 27.1.1 (*)
|    \--- com.android.support:support-annotations:24.2.1 -> 27.1.1
+--- com.android.support:appcompat-v7:27.1.1 (*)
+--- com.squareup.retrofit2:retrofit:2.3.0
|    \--- com.squareup.okhttp3:okhttp:3.8.0 -> 3.9.0 (*)
+--- com.squareup.retrofit2:converter-gson:2.1.0
|    +--- com.squareup.retrofit2:retrofit:2.1.0 -> 2.3.0 (*)
|    \--- com.google.code.gson:gson:2.7 -> 2.8.1
+--- com.android.support:cardview-v7:27.1.1
|    \--- com.android.support:support-annotations:27.1.1
+--- android.arch.lifecycle:extensions:1.1.1
|    +--- android.arch.lifecycle:runtime:1.1.1 (*)
|    +--- android.arch.core:common:1.1.1 (*)
|    +--- android.arch.core:runtime:1.1.1 (*)
|    +--- com.android.support:support-fragment:26.1.0 -> 27.1.1 (*)
|    +--- android.arch.lifecycle:common:1.1.1 (*)
|    +--- android.arch.lifecycle:livedata:1.1.1
|    |    +--- android.arch.core:runtime:1.1.1 (*)
|    |    +--- android.arch.lifecycle:livedata-core:1.1.1 (*)
|    |    \--- android.arch.core:common:1.1.1 (*)
|    \--- android.arch.lifecycle:viewmodel:1.1.1 (*)
+--- com.facebook.shimmer:shimmer:0.1.0
+--- com.android.support:multidex:1.0.2
+--- com.github.jinatonic.confetti:confetti:1.1.0
+--- com.github.ybq:Android-SpinKit:1.1.0
+--- com.blankj:utilcode:1.9.8
+--- com.squareup.retrofit2:converter-scalars:2.1.0
|    \--- com.squareup.retrofit2:retrofit:2.1.0 -> 2.3.0 (*)
+--- io.branch.sdk.android:library:2.+ -> 2.18.1
|    \--- com.android.support:support-annotations:22.2.0 -> 27.1.1
+--- com.github.bumptech.glide:glide:3.7.0
+--- com.google.android.gms:play-services-gcm:11.4.2
|    +--- com.google.android.gms:play-services-base:11.4.2
|    |    +--- com.google.android.gms:play-services-basement:11.4.2
|    |    |    +--- com.android.support:support-v4:25.2.0 -> 27.1.1 (*)
|    |    |    \--- com.google.android.gms:play-services-basement-license:11.4.2
|    |    +--- com.google.android.gms:play-services-tasks:11.4.2
|    |    |    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|    |    |    \--- com.google.android.gms:play-services-tasks-license:11.4.2
|    |    \--- com.google.android.gms:play-services-base-license:11.4.2
|    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|    +--- com.google.android.gms:play-services-iid:11.4.2
|    |    +--- com.google.android.gms:play-services-base:11.4.2 (*)
|    |    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|    |    \--- com.google.android.gms:play-services-iid-license:11.4.2
|    \--- com.google.android.gms:play-services-gcm-license:11.4.2
+--- com.google.firebase:firebase-messaging:11.4.2
|    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|    +--- com.google.firebase:firebase-iid:11.4.2
|    |    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|    |    +--- com.google.firebase:firebase-common:11.4.2
|    |    |    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|    |    |    +--- com.google.android.gms:play-services-tasks:11.4.2 (*)
|    |    |    \--- com.google.firebase:firebase-common-license:11.4.2
|    |    \--- com.google.firebase:firebase-iid-license:11.4.2
|    +--- com.google.firebase:firebase-common:11.4.2 (*)
|    \--- com.google.firebase:firebase-messaging-license:11.4.2
+--- com.google.firebase:firebase-perf:11.4.2
|    +--- com.google.android.gms:play-services-base:11.4.2 (*)
|    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|    +--- com.google.firebase:firebase-iid:11.4.2 (*)
|    +--- com.google.firebase:firebase-common:11.4.2 (*)
|    \--- com.google.firebase:firebase-perf-license:11.4.2
+--- com.mixpanel.android:mixpanel-android:5.3.0
+--- me.zhanghai.android.materialprogressbar:library:1.4.2
|    +--- com.android.support:appcompat-v7:26.0.2 -> 27.1.1 (*)
|    \--- com.android.support:support-annotations:26.0.2 -> 27.1.1
+--- de.hdodenhof:circleimageview:2.2.0
+--- com.google.dagger:dagger:2.11
|    \--- javax.inject:javax.inject:1
+--- com.google.dagger:dagger-android:2.11
|    +--- com.google.dagger:dagger:2.11 (*)
|    +--- com.android.support:support-annotations:25.0.0 -> 27.1.1
|    +--- com.google.code.findbugs:jsr305:3.0.1 -> 1.3.9
|    \--- javax.inject:javax.inject:1
+--- com.skyfishjy.ripplebackground:library:1.0.1
+--- jp.wasabeef:recyclerview-animators:2.2.7
|    +--- com.android.support:support-compat:25.4.0 -> 27.1.1 (*)
|    +--- com.android.support:support-core-ui:25.4.0 -> 27.1.1 (*)
|    \--- com.android.support:recyclerview-v7:25.4.0 -> 27.1.1 (*)
+--- com.github.jd-alexander:LikeButton:0.2.3
|    \--- com.android.support:appcompat-v7:23.2.0 -> 27.1.1 (*)
+--- com.crashlytics.sdk.android:crashlytics:2.6.8
|    +--- com.crashlytics.sdk.android:beta:1.2.5
|    |    \--- io.fabric.sdk.android:fabric:1.3.17
|    +--- io.fabric.sdk.android:fabric:1.3.17
|    +--- com.crashlytics.sdk.android:crashlytics-core:2.3.17
|    |    +--- io.fabric.sdk.android:fabric:1.3.17
|    |    \--- com.crashlytics.sdk.android:answers:1.3.13
|    |         \--- io.fabric.sdk.android:fabric:1.3.17
|    \--- com.crashlytics.sdk.android:answers:1.3.13 (*)
+--- com.android.support:support-v4:27.1.1 (*)
+--- com.android.support.constraint:constraint-layout:1.1.0
|    \--- com.android.support.constraint:constraint-layout-solver:1.1.0
+--- me.relex:circleindicator:1.2.2
+--- it.sephiroth.android.library.targettooltip:target-tooltip-library:1.3.15
|    \--- com.android.support:appcompat-v7:24.1.1 -> 27.1.1 (*)
+--- com.jakewharton:butterknife:8.6.0
|    +--- com.jakewharton:butterknife-annotations:8.6.0
|    |    \--- com.android.support:support-annotations:25.1.0 -> 27.1.1
|    +--- com.android.support:support-annotations:25.1.0 -> 27.1.1
|    \--- com.android.support:support-compat:25.1.0 -> 27.1.1 (*)
+--- com.jakewharton:kotterknife:0.1.0-SNAPSHOT
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.4-3 -> 1.2.41
|    |    \--- org.jetbrains:annotations:13.0
|    +--- com.android.support:support-v4:26.0.2 -> 27.1.1 (*)
|    \--- com.android.support:recyclerview-v7:26.0.2 -> 27.1.1 (*)
+--- com.github.developer-shivam:Crescento:1.2.0
|    +--- com.android.support:appcompat-v7:25.0.0 -> 27.1.1 (*)
|    \--- com.android.support:palette-v7:25.0.0 -> 27.1.1 (*)
+--- project :luhn
|    +--- com.android.support:design:27.1.1 (*)
|    +--- com.android.support:appcompat-v7:27.1.1 (*)
|    +--- com.android.support:support-compat:27.1.1 (*)
|    +--- io.card:android-sdk:5.5.1
|    \--- uk.co.chrisjenx:calligraphy:2.3.0
|         \--- com.android.support:appcompat-v7:25.3.1 -> 27.1.1 (*)
+--- project :tooltip
|    \--- com.android.support:support-annotations:24.0.0 -> 27.1.1
+--- com.google.android:flexbox:0.2.6
|    \--- com.android.support:support-compat:25.3.0 -> 27.1.1 (*)
+--- com.github.freshdesk:freshchat-android:1.3.1
|    +--- com.google.code.gson:gson:2.8.0 -> 2.8.1
|    +--- com.squareup.picasso:picasso:2.5.2
|    +--- com.android.support:appcompat-v7:23.4.0 -> 27.1.1 (*)
|    \--- com.android.support:recyclerview-v7:23.4.0 -> 27.1.1 (*)
+--- com.google.firebase:firebase-core:11.4.2
|    \--- com.google.firebase:firebase-analytics:11.4.2
|         +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|         +--- com.google.firebase:firebase-common:11.4.2 (*)
|         +--- com.google.firebase:firebase-analytics-impl:11.4.2
|         |    +--- com.google.android.gms:play-services-basement:11.4.2 (*)
|         |    +--- com.google.firebase:firebase-iid:11.4.2 (*)
|         |    +--- com.google.firebase:firebase-common:11.4.2 (*)
|         |    +--- com.google.android.gms:play-services-tasks:11.4.2 (*)
|         |    \--- com.google.firebase:firebase-analytics-impl-license:11.4.2
|         \--- com.google.firebase:firebase-analytics-license:11.4.2
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.41
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.2.41 (*)
+--- com.google.code.gson:gson:2.8.1
+--- com.firebase:firebase-jobdispatcher:0.8.5
|    \--- com.android.support:support-compat:25.0.0 -> 27.1.1 (*)
\--- junit:junit:4.12
     \--- org.hamcrest:hamcrest-core:1.3

Ответ 1

У нас была такая проблема. Попробуйте использовать инструмент JarJar https://github.com/pantsbuild/jarjar и перепакуйте код из пакета com.google.code.gson, например, в com.google.code.gsonlocal. Иногда производители включают некоторых популярных библиотек в свои сборки ОС, и у разработчиков возникают проблемы. Repack был единственным способом решения этой проблемы.

Удачи!