tur*_*och 2 android kotlin android-jetpack-compose kotlin-multiplatform-mobile
我在设置驻留在 KMM 项目中的共享代码中并使用 Jetpack Compose 的活动时遇到问题。当 Activity 位于 Android 源(/app)中时,效果很好。但我想发布一个没有任何应用程序的共享(/common)库。
作为一个例子,我分叉了一个很棒的最小 KMM+Compose 项目:https://github.com/cyberhenoch/PeopleInSpace:
它编译得很好,但在运行时我得到:
进程:com.surrus.peopleinspace,PID:4067 java.lang.NoSuchMethodError:没有静态方法 setContent $default(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions/Function0;ILjava/lang/对象;)Landroidx/activity/compose/ComponentActivityKt类中的V;或其超类(“androidx.activity.compose.ComponentActivityKt”的声明出现在 /data/app/com.surrus.peopleinspace-8P35Dcwzn9_G-xN9YdwFrA==/base.apk 中)位于 com.surrus.android.SharedActivity.onCreate(共享活动.kt:12)
我尝试添加此处描述的选项https://developer.android.com/jetpack/compose/setup#configure_gradle但是
我应该做什么才能让它发挥作用?任何帮助,将不胜感激。
所需的更改是添加org.jetbrains.compose插件。
基于 IDEA(不是 Android Studio)模板,使用 Compose Jetpack 创建多平台项目 Compose for Desktop(实验) -> Mutiplatform 使用 Kotlin 1.4.30
项目build.gradle.kts
buildscript {
repositories {
gradlePluginPortal()
}
}
...
allprojects{
...
maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
}
Run Code Online (Sandbox Code Playgroud)
公共模块build.gradle.kts
plugins{
...
id("org.jetbrains.compose") version "0.3.1"
}
Run Code Online (Sandbox Code Playgroud)
除此之外,添加插件后,Android Studio 搞乱了显示“未选择模块”错误的模块以及此问题中描述的问题。但在 IDEA 中打开它显示了修复多模块 gradle 项目的选项。我用这种方法修复了它并在Android Studio中重新打开。
所需的更改可以在示例存储库中看到。
AS 版本 2020.3.1 Canary 15 & IDEA 版本社区 2021.1
谢谢约翰·奥莱利!
| 归档时间: |
|
| 查看次数: |
1494 次 |
| 最近记录: |