I have made a KMP library and am trying to use the...
# serialization
r
I have made a KMP library and am trying to use the output aar in android and the following issue is coming
Copy code
java.lang.RuntimeException: Unable to instantiate application com.rawat.address.AddressApp: java.lang.TypeNotPresentException: Type kotlinx.serialization.json.Json not present
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1244)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6683)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.TypeNotPresentException: Type kotlinx.serialization.json.Json not present
        at libcore.reflect.ParameterizedTypeImpl.getRawType(ParameterizedTypeImpl.java:69)
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:77)
        at libcore.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:70)
        at libcore.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:55)
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:76)
        at libcore.reflect.Types.getType(Types.java:56)
        at java.lang.Class.getGenericSuperclass(Class.java:878)
        at org.kodein.type.TypeReference.<init>(typeTokensJVM.kt:65)
        at com.library.address.di.KodeinKt$commonModule$$inlined$bindSingleton$default$1.<init>(typeTokensJVM.kt:83)
        at com.library.address.di.KodeinKt.commonModule(Kodein.kt:79)
        at com.library.address.di.KodeinKt.access$commonModule(Kodein.kt:1)
        at com.library.address.di.KodeinKt$initKodein$container$1.invoke(Kodein.kt:26)
        at com.library.address.di.KodeinKt$initKodein$container$1.invoke(Kodein.kt:23)
        at org.kodein.di.internal.DIImpl$Companion.newBuilder(DIImpl.kt:21)
        at org.kodein.di.internal.DIImpl$Companion.access$newBuilder(DIImpl.kt:20)
        at org.kodein.di.internal.DIImpl.<init>(DIImpl.kt:18)
        at org.kodein.di.DI$Companion.invoke(DI.kt:460)
        at org.kodein.di.DI$Companion.invoke$default(DI.kt:460)
        at com.library.address.di.KodeinKt.initKodein(Kodein.kt:23)
        at com.library.address.di.KodeinKt.initKodein$default(Kodein.kt:22)
        at com.rawat.address.AddressApp.<init>(AddressApp.kt:8)
        at java.lang.Class.newInstance(Native Method)
        at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
        at androidx.core.app.CoreComponentFactory.instantiateApplication(CoreComponentFactory.java:52)
        at android.app.Instrumentation.newApplication(Instrumentation.java:1158)
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1236)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6683) 
        at android.app.ActivityThread.access$1300(ActivityThread.java:237) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     Caused by: java.lang.ClassNotFoundException: kotlinx.serialization.json.Json
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at libcore.reflect.ParameterizedTypeImpl.getRawType(ParameterizedTypeImpl.java:67)
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:77) 
        at libcore.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:70) 
        at libcore.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:55) 
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:76) 
        at libcore.reflect.Types.getType(Types.java:56) 
        at java.lang.Class.getGenericSuperclass(Class.java:878) 
        at org.kodein.type.TypeReference.<init>(typeTokensJVM.kt:65) 
        at com.library.address.di.KodeinKt$commonModule$$inlined$bindSingleton$default$1.<init>(typeTokensJVM.kt:83) 
        at com.library.address.di.KodeinKt.commonModule(Kodein.kt:79) 
        at com.library.address.di.KodeinKt.access$commonModule(Kodein.kt:1) 
        at com.library.address.di.KodeinKt$initKodein$container$1.invoke(Kodein.kt:26) 
        at com.library.address.di.KodeinKt$initKodein$container$1.invoke(Kodein.kt:23) 
        at org.kodein.di.internal.DIImpl$Companion.newBuilder(DIImpl.kt:21) 
        at org.kodein.di.internal.DIImpl$Companion.access$newBuilder(DIImpl.kt:20) 
        at org.kodein.di.internal.DIImpl.<init>(DIImpl.kt:18) 
        at org.kodein.di.DI$Companion.invoke(DI.kt:460) 
        at org.kodein.di.DI$Companion.invoke$default(DI.kt:460) 
        at com.library.address.di.KodeinKt.initKodein(Kodein.kt:23) 
        at com.library.address.di.KodeinKt.initKodein$default(Kodein.kt:22) 
        at com.rawat.address.AddressApp.<init>(AddressApp.kt:8) 
        at java.lang.Class.newInstance(Native Method) 
        at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76) 
        at androidx.core.app.CoreComponentFactory.instantiateApplication(CoreComponentFactory.java:52) 
        at android.app.Instrumentation.newApplication(Instrumentation.java:1158) 
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1236) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6683) 
        at android.app.ActivityThread.access$1300(ActivityThread.java:237) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlinx.serialization.json.Json" on path: DexPathList[[dex file "/data/data/com.rawat.address/code_cache/.overlay/base.apk/classes7.dex", zip file "/data/app/~~U3m2k-_-ig7S7cGbCNubiA==/com.rawat.address-AHUnIhfVwegLlNWqeSa9yQ==/base.apk"],nativeLibraryDirectories=[/data/app/~~U3m2k-_-ig7S7cGbCNubiA==/com.rawat.address-AHUnIhfVwegLlNWqeSa9yQ==/lib/x86, /system/lib, /system_ext/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at java.lang.Class.classForName(Native Method) 
        at java.lang.Class.forName(Class.java:454) 
        at libcore.reflect.ParameterizedTypeImpl.getRawType(ParameterizedTypeImpl.java:67) 
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:77) 
        at libcore.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:70) 
        at libcore.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:55) 
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:76) 
        at libcore.reflect.Types.getType(Types.java:56) 
        at java.lang.Class.getGenericSuperclass(Class.java:878) 
        at org.kodein.type.TypeReference.<init>(typeTokensJVM.kt:65) 
        at com.library.address.di.KodeinKt$commonModule$$inlined$bindSingleton$default$1.<init>(typeTokensJVM.kt:83) 
        at com.library.address.di.KodeinKt.commonModule(Kodein.kt:79) 
        at com.library.address.di.KodeinKt.access$commonModule(Kodein.kt:1) 
        at com.library.address.di.KodeinKt$initKodein$container$1.invoke(Kodein.kt:26) 
        at com.library.address.di.KodeinKt$initKodein$container$1.invoke(Kodein.kt:23) 
        at org.kodein.di.internal.DIImpl$Companion.newBuilder(DIImpl.kt:21) 
        at org.kodein.di.internal.DIImpl$Companion.access$newBuilder(DIImpl.kt:20) 
        at org.kodein.di.internal.DIImpl.<init>(DIImpl.kt:18) 
        at org.kodein.di.DI$Companion.invoke(DI.kt:460) 
        at org.kodein.di.DI$Companion.invoke$default(DI.kt:460) 
        at com.library.address.di.KodeinKt.initKodein(Kodein.kt:23) 
        at com.library.address.di.KodeinKt.initKodein$default(Kodein.kt:22) 
        at com.rawat.address.AddressApp.<init>(AddressApp.kt:8) 
        at java.lang.Class.newInstance(Native Method) 
        at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76) 
        at androidx.core.app.CoreComponentFactory.instantiateApplication(CoreComponentFactory.java:52) 
        at android.app.Instrumentation.newApplication(Instrumentation.java:1158) 
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1236) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6683) 
        at android.app.ActivityThread.access$1300(ActivityThread.java:237) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Can anyone help?
🧵 1
j
The json library is added in Gradle?
r
I added the serialization core to common main source sets in the kmp library
j
Looks like you need the json one too
r
Tried including that but the same error occurs
So far the only thing that worked was adding serialization json to Android project where this library’s aar is going to be used. But that seems to defeat the purpose of having a library added