当前位置: 首页 > 知识库问答 >
问题:

编写编译器需要Kotlin版本

郗阳德
2023-03-14

我使用android Studio制作了一个静态编程语言MultiPlatform Mobile项目,导入SQLDelight后遇到以下错误:

e: This version (1.0.1) of the Compose Compiler requires Kotlin version 1.5.21 but you appear to be using Kotlin version 1.5.30 which is not known to be compatible.  Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).

我回答了这个问题,但他们提到的一切我都做对了。在一个文件一个文件地查看之后,我没有找到我在哪里声明了那个版本,于是我决定将我的项目与其中一个示例项目进行比较。

再次查看这些文件后,我发现我在我的应用程序等级中使用了SQLDelightVersion1.5.2。属性,将其从1.5.2更改为1.4.2后,他们使用了1.4.2。

问题是,如果SQLDelight与jetpack compose无关,为什么会出现这种情况?

共有1个答案

马宜民
2023-03-14

Jetpack Compose与kotlin编译器版本紧密绑定,它可能不会很快改变(尽管,AFAIK,Google正在与Jet大脑讨论稳定编译器插件API以避免这种情况发生。我的来源是Q之一

如果您想使用SQLDelight或任何其他基于其他kotlin版本的库,您可能需要在gradle级别强制使用适当的kotlin版本(如此处所示)

 类似资料:
  • 我的模块的分级文件:

  • 我是java初学者,遇到过这个错误。 但是错误指向了+号,这是怎么了?上面写着发现:双倍。但我希望我的输出是双倍。但它说作为必需的int。

  • 本文向大家介绍什么是预编译,何时需要预编译:相关面试题,主要包含被问及什么是预编译,何时需要预编译:时的应答技巧和注意事项,需要的朋友参考一下 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

  • 我需要使用一个尚未发布的错误修复。我可以用这样的东西吗: 或 在我的?其中是未来的稳定版本,是提交,包括错误修复,现在可以在远程回购(@master)中使用。

  • 我无法理解以下科特林文档: 为什么编译器在这里需要显式初始值设定项的唯一解释(至少我能想到的唯一解释)是 Kotlin 没有属性的默认值。对吗?如果是,为什么?换句话说:Kotlin 属性和 Java 字段(具有默认值)之间有什么区别,这不允许我们有属性的默认值?