我在设置驻留在 KMM 项目中的共享代码中并使用 Jetpack Compose 的活动时遇到问题。当活动在 Android 源(/app)中时,这可以正常工作。但我想发布一个没有任何应用程序的共享(/common)库。
例如,我创建了一个很棒的最小 KMM+Compose 项目:https ://github.com/cyberhenoch/PeopleInSpace :
- 将撰写活动(SharedActivity)添加到共享代码中
- 更新了共享代码androidMain中的依赖项
它编译得很好,但在运行时我得到:
进程:com.surrus.peopleinspace,PID:4067 java.lang.NoSuchMethodError:没有静态方法 setContent $default(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions/Function0;ILjava/lang/ Object;)V 在类 Landroidx/activity/compose/ComponentActivityKt; 或其超类(在 com.surrus.android.SharedActivity.onCreate( SharedActivity.kt:12)
我尝试添加此处描述的选项https://developer.android.com/jetpack/compose/setup#configure_gradle但是
- 并非所有都可以添加到公共模块(kotlinOptions?)
- 在原始项目中,它们不是必需的,而且效果很好
- 在以不同的组合添加其中几个后,它甚至无法编译(异常:java.lang.NoClassDefFoundError: org/jetbrains/kotlin/serialization/DescriptorSerializerPlugin at java.base/java.lang.ClassLoader.defineClass1(Native Method))
我应该怎么做才能让它工作?任何帮助,将不胜感激。