Я разрабатываю приложение для Android, в котором используются API Google Gemini (что зависит от KTOR 2.x) и Supabase SDK (который требует KTOR 3.x). При включении обе библиотеки я сталкиваюсь с ошибками разрешения класса из -за противоречивых версий KTOR. < /P>
среда
android Studio Meerkat | 2024.3.1 < /p>
< /li>
kotlin 1.9.x < /p>
< /li>
jetpack compose < /p>
< /li>
target для di < /p>
< /li> 35 < /p>
< /li>
< /ul>
Информация об ошибке
Приложение сбивает с чередующимися ошибками: < /p>
ошибка, связанная с супабазой: < /strong> < /p>
Код: Выделить всё
java.lang.NoClassDefFoundError: Failed resolution of: Lio/ktor/client/HttpClientJvmKt;
at io.github.jan.supabase.network.KtorSupabaseHttpClient.\(KtorSupabaseHttpClient.kt:55)
Код: Выделить всё
java.lang.NoClassDefFoundError: Failed resolution of: Lio/ktor/client/plugins/HttpTimeout;
at io.ktor.client.engine.okhttp.OkHttpEngine.(OkHttpEngine.kt:40)
at com.google.ai.client.generativeai.common.APIController.
Код: Выделить всё
implementation(libs.supabase.auth)
implementation(libs.supabase.postgrest)
implementation(libs.supabase.realtime)
implementation(libs.supabase.storage)
implementation(libs.supabase.functions)
< /code>
// Gemini API (Ktor 2.x)
implementation(libs.generativeai)
< /code>
// Explicit Ktor dependencies
implementation(libs.ktor.client.android)
исключенный Ktor из Gemini в Build gradle.kts
Код: Выделить всё
implementation(libs.generativeai) {
exclude(group = "io.ktor")
}
Код: Выделить всё
implementation("io.ktor:ktor-client-core:3.1.0")
implementation("io.ktor:ktor-client-okhttp:3.1.0")
// Also tried mixing versions (failed)
implementation("io.ktor:ktor-client-plugins:2.3.7")
packaging {
resources {
pickFirsts.add("META-INF/INDEX.LIST")
pickFirsts.add("META-INF/io.netty.versions.properties")
excludes.add("META-INF/*.kotlin_module")
}
}
< /code>
Нет разрешить конфликт. Есть ли безопасный способ справиться с основными несоответствиями версий для KTOR?
Подробнее здесь: https://stackoverflow.com/questions/795 ... d-supabase
Мобильная версия