Kotlin Multiplatform Mobile 可以与 Jetpack Compose 一起使用吗?
Could Kotlin Multiplatform Mobile work with Jetpack Compose?
有 2 个问题不允许在这些技术之间生成兼容性
Jetpack Compose
第一个问题是它只适用于 Android Studio Canary x。
- Android Studio 4.2 测试版 6
Jetpack Compose is a preview feature, and support for Compose is included only in Canary versions of Android Studio. To use Compose in your app project, download and install the latest Canary version of the IDE.
Jetpack Compose 适用于:
- Android 金丝雀工作室
- 科特林 1.4.30
- distributionUrl: 6.8.2
- AGP:7.0.0-alpha11
- Java版本.VERSION_11
Kotlin 多平台移动
第二个问题是 Android Studio Canary 构建在 Kotlin Multiplatform Mobile 中存在错误。我正在使用以下内容:
- Android 北极狐工作室 | 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
错误(issue/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 工作的唯一解决方法是 use Android Studio Beta(但这与 Jetpack Compose 不兼容)。
鉴于此,将有 2 个我无法面对的解决方案。让 Compose 在 Android Studio Beta 版本上工作或修复 Android Studio Canary 中的 KMM 错误。
需要注意的是,KMM 和 Jetpack Compose 使用不同版本的 AGP 和 gradle 发行版。然后我想到,我不知道是否可能,延迟版本共存于同一个项目中。
欢迎提出任何建议。
谢谢
按照 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 存储库中的示例:
技术之间存在兼容性。由于我在 MortyComposeKMM.
中进行的测试,我能够调试项目中的错误
issue/KT-43944 的解决方法对我不起作用,因为我在 buildSrc 中有 4.1.2
中 gradle 的依赖项,它生成了类型为 Failed to notify build listener. > Please initialize at least one Kotlin target in 'x (:x)'.
[ 的错误=18=]
解决方案:
实施Workaround 1
如果使用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
有 2 个问题不允许在这些技术之间生成兼容性
Jetpack Compose
第一个问题是它只适用于 Android Studio Canary x。
- Android Studio 4.2 测试版 6
Jetpack Compose is a preview feature, and support for Compose is included only in Canary versions of Android Studio. To use Compose in your app project, download and install the latest Canary version of the IDE.
Jetpack Compose 适用于:
- Android 金丝雀工作室
- 科特林 1.4.30
- distributionUrl: 6.8.2
- AGP:7.0.0-alpha11
- Java版本.VERSION_11
Kotlin 多平台移动
第二个问题是 Android Studio Canary 构建在 Kotlin Multiplatform Mobile 中存在错误。我正在使用以下内容:
- Android 北极狐工作室 | 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
错误(issue/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 工作的唯一解决方法是 use Android Studio Beta(但这与 Jetpack Compose 不兼容)。
鉴于此,将有 2 个我无法面对的解决方案。让 Compose 在 Android Studio Beta 版本上工作或修复 Android Studio Canary 中的 KMM 错误。
需要注意的是,KMM 和 Jetpack Compose 使用不同版本的 AGP 和 gradle 发行版。然后我想到,我不知道是否可能,延迟版本共存于同一个项目中。
欢迎提出任何建议。
谢谢
按照 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 存储库中的示例:
技术之间存在兼容性。由于我在 MortyComposeKMM.
中进行的测试,我能够调试项目中的错误issue/KT-43944 的解决方法对我不起作用,因为我在 buildSrc 中有 4.1.2
中 gradle 的依赖项,它生成了类型为 Failed to notify build listener. > Please initialize at least one Kotlin target in 'x (:x)'.
[ 的错误=18=]
解决方案:
实施Workaround 1
如果使用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