问题描述
有两个问题不允许在这些技术之间产生兼容性
Jetpack Compose
第一个问题是它只适用于 Android Studio Canary x。
- Android Studio 4.2 测试版 6
Jetpack Compose 是一项预览功能,仅在 Canary 版本的 Android Studio 中包含对 Compose 的支持。要在您的应用项目中使用 Compose,请下载并安装最新的 Canary 版本的 IDE。
Jetpack Compose 适用于:
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
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 工作的唯一解决方法是 use Android Studio Beta(但这与 Jetpack Compose 不兼容)。
Install Android Studio – version 4.2 or higher.
鉴于此,将有 2 个我无法面对的解决方案。让 Compose 在 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)'.
类型的错误
解决方案:
-
如果您使用 buildSrc 构建 custom plugins,请务必使用 AGP 7.0
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 在多平台中使用 Compose。唯一的问题是你丢失了一些东西,比如预览。
查看 JetBrains Compose Desktop 存储库中的示例: