Description
[READ] Step 1: Are you in the right place?
Issues filed here should be about bugs in the code in this repository.
If you have a general question, need help debugging, or fall into some
other category use one of these other channels:
- For general technical questions, post a question on StackOverflow
with the firebase tag. - For general Firebase discussion, use the firebase-talk
google group. - For help troubleshooting your application that does not fall under one
of the above categories, reach out to the personalized
Firebase support channel.
[REQUIRED] Step 2: Describe your environment
- Android Studio version: Android Studio Meerkat | 2024.3.1 Patch 1
- Firebase Component: firebase-ai
- Component version: Uses from com.google.firebase:firebase-bom:33.15.0
[REQUIRED] Step 3: Describe the problem
Steps to reproduce:
- In project that uses ktor
Inshared/build.gradle.ktx
implementation(project.dependencies.platform("io.github.jan-tennert.supabase:bom:3.1.3"))
implementation(libs.auth)
implementation(libs.postgrest)
implementation(libs.storage)
// Added to simulate the issue
implementation("io.ktor:ktor-client-plugins:3.1.1")
implementation("io.ktor:ktor-client-core:3.1.3")
implementation("io.ktor:ktor-client-okhttp:3.1.3")
implementation("io.ktor:ktor-client-content-negotiation:3.1.3")
implementation("io.ktor:ktor-serialization-kotlinx-json:3.1.3")
- Add firebase-ai as
Inandroid/build.gradle.ktx
implementation(platform("com.google.firebase:firebase-bom:33.15.0"))
implementation("com.google.firebase:firebase-ai")
- Create a method that run through the code below:
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel("gemini-2.5-flash")
- It throws this exception as below
Caused by: java.lang.ClassNotFoundException: Didn't find class "io.ktor.client.plugins.HttpTimeout" on path: DexPathList[[dex file "/data/data/com.crafted.kudossnap.android/code_cache/.overlay/base.apk/classes18.dex", zip file "/data/app/~~BvP7CvDXbLXuQRD-J_BTAQ==/com.crafted.kudossnap.android-rmxprQRWauSMBmDF_djPyA==/base.apk"],nativeLibraryDirectories=[/data/app/~~BvP7CvDXbLXuQRD-J_BTAQ==/com.crafted.kudossnap.android-rmxprQRWauSMBmDF_djPyA==/lib/arm64, /data/app/~~BvP7CvDXbLXuQRD-J_BTAQ==/com.crafted.kudossnap.android-rmxprQRWauSMBmDF_djPyA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:637)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
... 74 more
What happened? How can we make the problem occur?
This could be a description, log/console output, etc.
Relevant Code:
Below is full of log
23:32:01.660 E FATAL EXCEPTION: main (Ask Gemini)
Process: com.crafted.kudossnap.android, PID: 22877
java.lang.NoClassDefFoundError: Failed resolution of: Lio/ktor/client/plugins/HttpTimeout;
at com.google.firebase.ai.common.APIController$client$1.invoke(APIController.kt:127)
at com.google.firebase.ai.common.APIController$client$1.invoke(APIController.kt:126)
at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:972)
at com.google.firebase.ai.common.APIController.<init>(APIController.kt:126)
at com.google.firebase.ai.common.APIController.<init>(APIController.kt:111)
at com.google.firebase.ai.GenerativeModel.<init>(GenerativeModel.kt:85)
at com.google.firebase.ai.FirebaseAI.generativeModel(FirebaseAI.kt:91)
at com.google.firebase.ai.FirebaseAI.generativeModel$default(FirebaseAI.kt:66)
at com.crafted.kudossnap.ui.feature.createkudos.CreateKudosViewModel.onSendKudos(CreateKudosViewModel.kt:75)
at com.crafted.kudossnap.ui.feature.createkudos.CreateKudosScreenKt.CreateKudosScreen$lambda$16$lambda$9$lambda$8(CreateKudosScreen.kt:123)
at com.crafted.kudossnap.ui.feature.createkudos.CreateKudosScreenKt.$r8$lambda$NRZqB2ACvu793NpuReLkZpu4oAo(Unknown Source:0)
at com.crafted.kudossnap.ui.feature.createkudos.CreateKudosScreenKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke-k-4lQ0M(Clickable.kt:639)
at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke(Clickable.kt:633)
at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend(TapGestureDetector.kt:255)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:163)
at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:152)
at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:359)
at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:719)
at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:598)
at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:620)
at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:1044)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:387)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:229)
at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:144)
at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:120)
at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1999)
at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1950)
at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1834)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2803)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2803)
23:32:01.664 E at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122) (Ask Gemini)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2803)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2803)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:458)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1980)
at android.app.Dialog.dispatchTouchEvent(Dialog.java:935)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:416)
at android.view.View.dispatchPointerEvent(View.java:16729)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7947)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7710)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7106)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7295)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7352)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:10214)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:10165)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:10134)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:10356)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:295)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:346)
at android.os.Looper.loopOnce(Looper.java:189)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8705)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@67b2340, androidx.compose.runtime.BroadcastFrameClock@aabb279, StandaloneCoroutine{Cancelling}@e120bbe, AndroidUiDispatcher@37141f]
Caused by: java.lang.ClassNotFoundException: Didn't find class "io.ktor.client.plugins.HttpTimeout" on path: DexPathList[[dex file "/data/data/com.crafted.kudossnap.android/code_cache/.overlay/base.apk/classes18.dex", zip file "/data/app/~~BvP7CvDXbLXuQRD-J_BTAQ==/com.crafted.kudossnap.android-rmxprQRWauSMBmDF_djPyA==/base.apk"],nativeLibraryDirectories=[/data/app/~~BvP7CvDXbLXuQRD-J_BTAQ==/com.crafted.kudossnap.android-rmxprQRWauSMBmDF_djPyA==/lib/arm64, /data/app/~~BvP7CvDXbLXuQRD-J_BTAQ==/com.crafted.kudossnap.android-rmxprQRWauSMBmDF_djPyA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:637)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
... 74 more