android - Compose 编译器需要 Kotlin 版本
问题描述
我使用 android studio 制作了一个 Kotlin 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!).
我关注了这个问题,但是他们提到的所有事情我都已经正确完成了。在逐个文件查找并找不到声明该版本的位置后,我决定将我的项目与其中一个示例项目进行比较。
再次浏览文件后,我发现我在我的 App Grade.properties 中使用了 sqlDelightVersion 1.5.2,他们使用了 1.4.2 将其从 1.5.2 更改为 1.4.2 后,一切都可以编译。
问题是,如果 SQLDelight 与 jetpack compose 无关,为什么会发生这种情况?
解决方案
Jetpack Compose 与 kotlin 编译器版本紧密绑定,它可能不会很快改变(尽管,AFAIK,Google 正在与 Jetbrains 讨论稳定编译器插件 API 以防止这种情况发生。我的来源是 compose 的问答之一团队)。
如果您想使用 SQLDelight 或任何其他基于 kotlin 其他版本的库 - 您可能必须在 gradle 级别强制使用正确的 kotlin 版本(如这里)
推荐阅读
- cdn - 如果网络提供商部署自己的 CDN,那么他们的 CDN 如何与内容提供商的 CDN 配合使用?
- html - 两个不同方向的粘性 div
- javascript - 知道如何更改 A(链接)标签的 .innerHTML 使其不再是链接吗?
- android - 如何将存储库添加到 Dagger Room 模块?
- javascript - 反应期望一个赋值或函数调用,而是看到一个表达式
- excel - EXCEL:单击一个单元格并突出显示另一个
- java - 比较未知整数类型的数字对象
- terraform - 如何在 terraform 中使用代码管道设置代码构建?
- c - 执行重定向到哪个文件描述符?
- python - 当我定义它时没有定义变量?