【发布时间】:2021-07-06 13:20:34
【问题描述】:
我正在使用 Jetpack Compose。我已经使用它并且一切正常。我已经在 app 模块和功能模块中配置了 Compose,并且在两个模块中我都导入了同一个库(见下文)。 当我尝试在另一个模块中使用它时,使用相同的配置我收到错误,here 中的所有解决方案都不适用:
androidx.compose.compiler.plugins.kotlin.IncompatibleComposeRuntimeVersionException: 您正在使用 Compose Runtime 的过时版本,该版本不是 与您拥有的 Compose Compiler 插件版本兼容 安装。您正在使用的 compose 编译器插件(版本 1.0.0-rc01) 要求最低运行时版本为 1.0.0-rc01。在 androidx.compose.compiler.plugins.kotlin.VersionChecker.outdatedRuntimeWithUnknownVersionNumber(VersionChecker.kt:113) 在 androidx.compose.compiler.plugins.kotlin.VersionChecker.check(VersionChecker.kt:78) 在 androidx.compose.compiler.plugins.kotlin.ComposeIrGenerationExtension.generate(ComposeIrGenerationExtension.kt:57) 在 org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory$convertToIr$1.invoke(JvmIrCodegenFactory.kt:120) 在 org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory$convertToIr$1.invoke(JvmIrCodegenFactory.kt:116) 在 org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.generateModuleFragment(Psi2IrTranslator.kt:91) 在 org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr(JvmIrCodegenFactory.kt:140) 在 org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr$default(JvmIrCodegenFactory.kt:66) 在 org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:61) 在 org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:35)
...
我在新模块的build.gradle文件中添加了以下部分(对于app模块和第一个模块):
android {
kotlinOptions {
jvmTarget = "1.8"
useIR = true
}
composeOptions {
kotlinCompilerExtensionVersion Version.compose
kotlinCompilerVersion Version.kotlin
}
buildFeatures {
compose = true
}
}
dependencies {
implementation Compose.runtime
implementation Compose.composeActivity
implementation Compose.ui
implementation Compose.material
implementation Compose.uiTooling
implementation Compose.livedata
androidTestImplementation Compose.uiTest
}
在哪里
object Version {
const val kotlin = "1.5.10"
const val compose = "1.0.0-rc01"
const val composeActivity = "1.3.0-rc01"
}
object Compose {
const val runtime = "androidx.compose.runtime:runtime:${Version.compose}"
const val composeActivity = "androidx.activity:activity-compose:${Version.composeActivity}"
const val ui = "androidx.compose.ui:ui:${Version.compose}"
const val material = "androidx.compose.material:material:${Version.compose}"
const val uiTooling = "androidx.compose.ui:ui-tooling:${Version.compose}"
const val uiTest = "androidx.compose.ui:ui-test-junit4:${Version.compose}"
const val livedata = "androidx.compose.runtime:runtime-livedata:${Version.compose}"
}
我尝试在其中添加 Jetpack Compose 的第二个模块具有更多依赖项。 问题是否可能与依赖项之一有关?
【问题讨论】:
-
看起来它与依赖关系有关。如果我使用第三个功能模块一切正常。只有具有许多依赖项的
core模块存在问题 -
您的 kotlin 版本与您的 compose 版本不兼容。对于 kotlin 版本
1.5.10使用1.0.0-beta09撰写版本 -
@VygintasB 我按照这里建议的设置:developer.android.com/jetpack/compose/setup
标签: android android-jetpack-compose