繁体   English   中英

Kotlin Multiplatform Mobile 可以与 Jetpack Compose 一起使用吗?

[英]Could Kotlin Multiplatform Mobile work with Jetpack Compose?

有 2 个问题不允许在这些技术之间产生兼容性

喷气背包组成

第一个问题是它只适用于 Android Studio Canary x。

  • Android Studio 4.2 Beta 6

Jetpack Compose 是一项预览功能,仅在 Android Studio 的 Canary 版本中包含对 Compose 的支持。 要在您的应用项目中使用 Compose,请下载并安装最新的 Canary 版本的 IDE。

Jetpack Compose 适用于:

  • Android Studio Canary
  • Kotlin 1.4.30
  • 分布网址:6.8.2
  • AGP:7.0.0-alpha11
  • JavaVersion.VERSION_11

Kotlin 多平台手机

第二个问题是 Android Studio Canary 版本在 Kotlin Multiplatform Mobile 中存在错误。 我正在使用以下内容:

  • Android Studio 北极狐 | 2020.3.1 金丝雀 11
Android Studio Arctic Fox | 2020.3.1 Canary 11
Build #AI-203.7148.57.2031.7209405, built on March 15, 2021
Runtime version: 11.0.8+0-b944-P17168821 amd64
VM: OpenJDK 64-Bit Server VM by N/A
Current Desktop: ubuntu:GNOME
  • gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-all.zip
  • build.gradle (Project)
buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0-alpha11'
    }
}
  • JavaVersion.VERSION_11

错误(问题/KT-43944 ):

A problem occurred configuring project ':kmm_shared'.
> Configuration with name 'testApi' not found.
* Exception is:
Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'testApi' not found.

目前 KMM 工作的唯一解决方法是使用 Android Studio Beta (但这与 Jetpack Compose 不兼容)。

安装 Android Studio – 4.2 或更高版本。

鉴于此,我将无法面对 2 个解决方案。 在 Android Studio Beta 上构建或修复 Android Studio Canary 中的 KMM 错误。

需要注意的是,KMM 和 Jetpack Compose 使用不同版本的 AGP 和 gradle 发行版。 然后我突然想到,我不知道是否有可能,延迟版本共存于同一个项目中。

欢迎任何建议。

谢谢

技术之间存在兼容性。 由于我在MortyComposeKMM中所做的测试,我能够在我的项目中调试错误。


问题/KT-43944 的解决方法对我不起作用,因为我在 buildSrc 中有一个4.1.2中 gradle 的依赖项,它生成了Failed to notify build listener. > Please initialize at least one Kotlin target in 'x (:x)'. Failed to notify build listener. > Please initialize at least one Kotlin target in 'x (:x)'.

解决方案:

build.gradle.kts (:buildSrc)

dependencies {
    implementation("com.android.tools.build:gradle:7.0.0-alpha11")
    implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31")
}
  • 使用JavaVersion.VERSION_11

鸣叫

正如https://youtrack.jetbrains.com/issue/KT-43944中所建议的,您必须在 build.gradle.kts(:shared) 中添加以下块作为解决方法:

android {
    configurations {
        create("androidTestApi")
        create("androidTestDebugApi")
        create("androidTestReleaseApi")
        create("testApi")
        create("testDebugApi")
        create("testReleaseApi")
    }
}

您甚至可以使用 Android Studio 4.0.1 在 Multiplatform 中使用 Compose。 唯一的问题是你会丢失一些东西,比如预览。

查看 JetBrains Compose Desktop 存储库中的示例:

https://github.com/JetBrains/compose-jb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM