Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jetpack Compose与Android Room的兼容性_Android_Kotlin_Android Room_Android Jetpack_Android Jetpack Compose - Fatal编程技术网

Jetpack Compose与Android Room的兼容性

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

我正试图在我的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/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
频道。很高兴知道。我会检查一下那个松弛的通道。