Skip to content

[BUG]: VK ID SDK crashes with NoClassDefFoundError when using OkHttp 5.x - internal API dependency #89

@Copatych

Description

@Copatych

Опишите баг

VK ID SDK использует внутренние классы OkHttp (okhttp3.internal.Util), которые были удалены в OkHttp 5.x. Это приводит к краху приложения при инициализации VK авторизации и блокирует обновление
других библиотек (например, Ktor 3.3.0, который использует OkHttp 5.1.0).

Вопроизведение

  1. Обновить проект для использования OkHttp 5.x (например, через Ktor 3.3.0)
  2. Запустить приложение с VK ID SDK
  3. Дождаться инициализации VK аутентификации
  4. Увидеть краш с NoClassDefFoundError

Ожидаемое поведение

VK ID SDK не должен использовать рефлексию, тк это публичная библиотека.

Фактическое поведение

Падает с ошибкой

java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Util;
                 	at okhttp3.tls.HandshakeCertificates$Builder.build(HandshakeCertificates.kt:174)
                 	at com.vk.id.network.OkHttpClientProvider.addRussianTrustedRootCA(OkHttpClientProvider.kt:85)
                 	at com.vk.id.network.OkHttpClientProvider.provide(OkHttpClientProvider.kt:30)
                 	at com.vk.id.internal.di.VKIDDepsProd.okHttpClient_delegate$lambda$7(VKIDDepsProd.kt:121)
                 	at com.vk.id.internal.di.VKIDDepsProd.$r8$lambda$Prh9MBmAvhVRdfv5E-ZG3uQV_TE(Unknown Source:0)
                 	at com.vk.id.internal.di.VKIDDepsProd$$ExternalSyntheticLambda16.invoke(D8$$SyntheticClass:0)
                 	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
                 	at com.vk.id.internal.di.VKIDDepsProd.getOkHttpClient(VKIDDepsProd.kt:120)
                 	at com.vk.id.internal.di.VKIDDepsProd.api$lambda$8(VKIDDepsProd.kt:125)
                 	at com.vk.id.internal.di.VKIDDepsProd.$r8$lambda$lb3vgwycLOewhgjK9WBMGtlArOM(Unknown Source:0)
                 	at com.vk.id.internal.di.VKIDDepsProd$$ExternalSyntheticLambda17.invoke(D8$$SyntheticClass:0)
                 	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
                 	at com.vk.id.analytics.stat.StatTracker$trackEvent$1$1.invokeSuspend$lambda$0(StatTracker.kt:65)

Используемые модули и их версии

  • com.vk.id:vkid:2.5.1
  • com.squareup.okhttp3:okhttp:5.1.0 (через Ktor 3.3.0)

Скриншоты

No response

Смартфон или эмулятор

Внутренний или внешний сервис

внешний

Обновляли ли вы сдк

Ошибка появляется при обновлении зависимостей проекта, которые приносят OkHttp 5.x

Исправлена ли ошибка

Используется последняя на данный момент версия 2.5.1

Где инициализиурете SDK

Application класс

Версия клиента авторизации

VK ID SDK 2.5.1

Дополнительные заметки

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions