Ich entwickle eine Android -App, die sowohl die Gemini -API von Google (die von KTOR 2.x abhängt) als auch von Supabase SDK (für das KTOR 3.x erforderlich ist). Wenn ich beide Bibliotheken einbeziehe, begegne ich Fehler bei der Auflösung von Klassen aufgrund widersprüchlicher KTOR -Versionen. 2024.3.1
[*]Kotlin 1.9.x
[*]Jetpack Compose
[*]Hilt for DI
Target SDK 35 < /p>
< /li>
< /ul>
Fehlerdetails
Die App stürzt mit alternierenden Fehlern ab: < /p>
SUPABASE-Related-Fehler: < /strong> < /p>
Code: Select all
java.lang.NoClassDefFoundError: Failed resolution of: Lio/ktor/client/HttpClientJvmKt;
at io.github.jan.supabase.network.KtorSupabaseHttpClient.\(KtorSupabaseHttpClient.kt:55)
Code: Select all
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.
Code: Select all
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)
Ausgeschlossener Ktor von Gemini in Build Gradle.KTS
Code: Select all
implementation(libs.generativeai) {
exclude(group = "io.ktor")
}
Code: Select all
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>
Keine hat den Konflikt gelöst. Gibt es eine sichere Möglichkeit, mit wichtigen Versionen für KTOR -Fehlanpassungen umzugehen?