Jetpack Compose与Android Room的兼容性
我正试图在我的Jetpack Compose项目中设置Android房间。然而,当试图添加Jetpack Compose与Android Room的兼容性,android,kotlin,android-room,android-jetpack,android-jetpack-compose,Android,Kotlin,Android Room,Android Jetpack,Android Jetpack Compose,我正试图在我的Jetpack Compose项目中设置Android房间。然而,当试图添加 kapt "androidx.room:room-compiler:2.2.3" 。。。到app build.gradle依赖项。我的构建失败,出现错误 e: java.lang.NoSuchMethodError: org.jetbrains.kotlin.codegen.state.GenerationState$Builder.isIrBackend(Z)Lorg/jetbrains/kotlin
kapt "androidx.room:room-compiler:2.2.3"
。。。到app build.gradle依赖项。我的构建失败,出现错误
e: java.lang.NoSuchMethodError: org.jetbrains.kotlin.codegen.state.GenerationState$Builder.isIrBackend(Z)Lorg/jetbrains/kotlin/codegen/state/GenerationState$Builder;
关于这是为什么有什么见解?我们可以将Android Room与Jetpack Compose结合使用吗?我很确定,我们仍然处于注释处理器(用于Room、改装等)和实验性Kotlin编译器无法相处的状态。目前推荐的方法是在独立于需要注释处理器的模块的模块中隔离Compose内容。这目前不受支持,因为kapt不能很好地与Jetpack Compose配合使用。正在跟踪此问题-它实际上正在运行,但并非没有一些更改 对于使用AndroidStudio 2020.3.1 Canary 2创建的新项目: In build.gradle(项目): 将compose_版本降级为1.0.0-alpha07,并将ext.kotlin_版本降级为1.4.10 In build.gradle(模块): 在composeOptions下,将composeCompilerVersion降级为1.4.10 在依赖项下,将“androidx.compose.ui:ui工具:$compose\u version”更改为“androidx.ui:ui工具:$compose\u version” 在主活动中-更改预览的导入,因为它取决于ui工具 添加房间依赖项 应该有用
但是,一些较新的Compose功能可能不起作用,因为它们明确指出,应该使用Kotlin 1.4.20版及以上版本。如果我没记错的话,这是Kotlin编译器上的一个错误,现已修复。不确定他们是否对Jetpack插件进行了更改。你用的是最新版本吗?嗨,是的,我想我用的是最新版本
ext.kotlin_version=“1.3.61”ext.compose_version='0.1.0-dev03'
到今天为止它还没有被修复好好,我只是在测试它,所以对它的工作来说并不重要。我不确定如何在模块中隔离Compose内容。你知道这方面有什么有用的资料吗?Thanks@MichaelJohnston:“你知道有什么有用的材料可以阅读吗?”--如果你是指文档的话,也不知道。正如一位关键的Compose工程师最近所说,由于API不断变化,他们没有在文档方面投入太多。但是,你可能想加入,因为他们有一个专门的#compose
频道。很高兴知道。我会检查一下那个松弛的通道。