最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

database - error in Supabase integration to Kotlin desktop app - Stack Overflow

programmeradmin1浏览0评论

I am integrating Supabase into our Kotlin desktop app. After I update dependencies and make the connection, the system says:

Info: (Supabase-Core) SupabaseClient created! Please report any bugs you find.

and after running:

SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See .html#noProviders for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: io/ktor/client/plugins/HttpTimeout
    at io.ktor.client.engine.cio.CIOEngine.<init>(CIOEngine.kt:29)
    at io.ktor.client.engine.cio.CIO.create(CIOCommon.kt:35)
    at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:644)
    at io.ktor.client.HttpClientJvmKt.HttpClient(HttpClientJvm.kt:24)
    at io.github.jan.supabasework.KtorSupabaseHttpClient.<init>(KtorSupabaseHttpClient.kt:51)
    at io.github.jan.supabase.SupabaseClientImpl.<init>(SupabaseClient.kt:116)
    at io.github.jan.supabase.SupabaseClientBuilder.build(SupabaseClientBuilder.kt:103)
    at MainKt.configureSupabaseClient(Main.kt:66)
    at ComposableSingletons$MainKt$lambda-2$1.invoke(Main.kt:29)
    at ComposableSingletons$MainKt$lambda-2$1.invoke(Main.kt:27)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:116)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at androidxpose.ui.window.Application_desktopKt$application$1$1.invoke(Application.desktop.kt:117)
    at androidxpose.ui.window.Application_desktopKt$application$1$1.invoke(Application.desktop.kt:116)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:116)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at androidxpose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1$1.invoke(Application.desktop.kt:233)
    at androidxpose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1$1.invoke(Application.desktop.kt:232)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at androidxpose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:380)
    at androidxpose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:223)
    at androidxpose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:221)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
    at androidxpose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at androidxpose.runtime.ActualJvm_jvmKt__ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:36)
    at androidxpose.runtime.ActualJvm_jvmKt.invokeComposable(Unknown Source)
    at androidxpose.runtime.ComposerImpl.doCompose(Composer.kt:3595)
    at androidxpose.runtime.ComposerImplposeContent$runtime(Composer.kt:3522)
    at androidxpose.runtime.CompositionImplposeContent(Composition.kt:743)
    at androidxpose.runtime.RecomposerposeInitial$runtime(Recomposer.kt:1122)
    at androidxpose.runtime.CompositionImplposeInitial(Composition.kt:649)
    at androidxpose.runtime.CompositionImpl.setContent(Composition.kt:635)
    at androidxpose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:221)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: io.ktor.client.plugins.HttpTimeout
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
    ... 49 more".". 

Dependencies:

    implementation(compose.desktop.currentOs)
    implementation("io.ktor:ktor-client-core:2.3.0")
    implementation("io.ktor:ktor-client-cio:2.3.0")
    implementation("io.ktor:ktor-client-content-negotiation:2.3.0")
    implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.0")
    implementation(".jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
    implementation(".jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
    implementation("com.auth0:java-jwt:4.2.1") // For JWT decoding
    implementation("com.squareup.okhttp3:okhttp:4.9.3") // For network requests

    //for superbase---
    implementation(platform("io.github.jan-tennert.supabase:bom:3.1.1"))
    implementation("io.github.jan-tennert.supabase:postgrest-kt")
    implementation("io.github.jan-tennert.supabase:auth-kt")
    implementation("io.github.jan-tennert.supabase:realtime-kt")

What I add to my main file:

fun configureSupabaseClient(): SupabaseClient {
    return createSupabaseClient(
        supabaseUrl = ";,
        supabaseKey = "PLACE_YOUR_KEY_HERE" // Make sure to secure your key in production!
    ) {
        install(Postgrest) // Install required plugins
    }
}

Google says that this happens because of dependencies; however the version is correct and I added all the things the tutorial requires.

What is a suggestion?

发布评论

评论列表(0)

  1. 暂无评论