highcharts / highcharts-android

Android wrapper for Highcharts usage
Other
126 stars 30 forks source link

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/gson/GsonBuilder; #286

Closed hiteshsarsava closed 1 month ago

hiteshsarsava commented 1 month ago

Version : 11.4.6

Sample Code :

AndroidView(
                    modifier = Modifier.fillMaxSize(),
                    factory = {
                        val view = LayoutInflater.from(it)
                            .inflate(R.layout.layout_highchart_line, null, false)

                        val chartView = view.findViewById<HIChartView>(R.id.chartView)

                        with(chartView) {
                            val options = HIOptions()

                            val chart = HIChart().apply { type = "spline" }
                            options.chart = chart

                            val xAxis = HIXAxis()
                            xAxis.lineWidth = 0
                            xAxis.categories = xAxisCategories
                            options.xAxis = object : ArrayList<HIXAxis?>() {
                                init {
                                    add(xAxis)
                                }
                            }

                            this.options = options
                        }
                        view
                    },
                )

Crash Log :

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/gson/GsonBuilder;
                            at com.highsoft.highcharts.core.i.a(SourceFile:1)
                            at com.highsoft.highcharts.core.f.c(SourceFile:2)
                            at com.highsoft.highcharts.core.HIChartView.a(SourceFile:170)
                            at com.highsoft.highcharts.core.HIChartView.onDraw(SourceFile:2)
                            at android.view.View.draw(View.java:22694)
                            at android.view.View.updateDisplayListIfDirty(View.java:21522)
                            at android.view.View.draw(View.java:22408)
                            at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
                            at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
                            at android.view.View.updateDisplayListIfDirty(View.java:21513)
                            at android.view.View.draw(View.java:22408)
                            at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
                            at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
                            at android.view.View.draw(View.java:22701)
                            at androidx.compose.ui.platform.AndroidViewsHandler.drawView(AndroidViewsHandler.android.kt:79)
                            at androidx.compose.ui.platform.AndroidComposeView.drawAndroidView(AndroidComposeView.android.kt:1223)
                            at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$coreModifier$2.invoke(AndroidViewHolder.android.kt:358)
                            at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$coreModifier$2.invoke(AndroidViewHolder.android.kt:353)
                            at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:127)
                            at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:110)
                            at androidx.compose.ui.node.LayoutNodeDrawScope.draw-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:89)
                            at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:450)
                            at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                            at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:280)
                            at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:447)
                            at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                            at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:999)
                            at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:196)
                            at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:447)
                            at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                            at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:280)
                            at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:447)
                            at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                            at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:280)
                            at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:447)
                            at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                            at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:999)
                            at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:196)
                            at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:447)
                            at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                            at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:280)
                            at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:68)
                            at androidx.compose.foundation.BackgroundNode.draw(Background.kt:163)
                            at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:110)
                            at androidx.compose.ui.node.LayoutNodeDrawScope.draw-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:89)
                            at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:450)
                            at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3335) (Ask Gemini)
                            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2135)
                            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8624)
                            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:975)
                            at android.view.Choreographer.doCallbacks(Choreographer.java:799)
                            at android.view.Choreographer.doFrame(Choreographer.java:734)
                            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:960)
                            at android.os.Handler.handleCallback(Handler.java:938)
                            at android.os.Handler.dispatchMessage(Handler.java:99)
                            at android.os.Looper.loop(Looper.java:236)
                            at android.app.ActivityThread.main(ActivityThread.java:8057)
                            at java.lang.reflect.Method.invoke(Native Method)
                            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
                        Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.gson.GsonBuilder" on path: DexPathList[[dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes13.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes8.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes12.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes7.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes9.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes10.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes4.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes5.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes3.dex", dex file "/data/data/com.kenzi.kenziapp.debug/code_cache/.overlay/base.apk/classes14.dex", zip file "/data/app/~~s5pLV05mwpbYn78utt6m4A==/com.kenzi.kenziapp.debug-dsGN-ocEl2c2Spq6fL6U4A==/base.apk"],nativeLibraryDirectories=[/data/app/~~s5pLV05mwpbYn78utt6m4A==/com.kenzi.kenziapp.debug-dsGN-ocEl2c2Spq6fL6U4A==/lib/arm64, /data/app/~~s5pLV05mwpbYn78utt6m4A==/com.kenzi.kenziapp.debug-dsGN-ocEl2c2Spq6fL6U4A==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
                            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
                            at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
                            at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                            ... 111 more
MikolajMichalczak commented 1 month ago

Hi @hiteshsarsava!

Please add Gson dependency in your gradle file: implementation 'com.google.code.gson:gson:gson_version

hiteshsarsava commented 1 month ago

Thanks. It worked. Please add this step here too. @MikolajMichalczak image

hiteshsarsava commented 1 month ago

This is mention here only for manually download setup. @MikolajMichalczak image