空的 KMM 项目卡住了 gradle 同步

问题描述

我正在尝试将一些业务逻辑从我的 iOS 应用转移到 KMM。当突然开始在工作室遇到问题时,我已经做了一些工作。它没有构建,有奇怪的 Metaspace 错误等。老实说,我在我的项目周围跳动了几个小时和几天 - 没有结果。我决定完全卸载 Studio 及其所有依赖文件

在那之后,我什至无法正确构建一个空的 KMM 项目。简单的 Android 项目很好。只有 KMM 才会出现问题。当我第一次创建项目时,它已成功加载,下载所有依赖项并同步。我能够看到“Android”项目结构。我试图通过 ./gradlew build 构建它 - 错误。没有完整的描述,只有失败任务的名称 - compile kotlin to ios arm64一个全新项目中的错误。我尝试重建项目 - 没有运气。所以我重新启动了工作室,魔法的第二部分开始了。

从这一刻起,每当我打开一个新的或现有的 KMM 项目时,它就会开始同步并卡住。例如,我无法打开项目结构,因为同步正在进行,我无法添加依赖项,因为同步正在进行。但是我可以通过 ./gradlew build 构建它并且它构建了!好吧,我尝试了更多命令,例如 ./gradlew -refresh-dependencies 等。它构建成功。然后在某个时候所有的代码都变成了红色。下面可以同时看到Android Studio的所有颜色:

enter image description here

在终端中可以看到构建成功。在右下角,您可以看到它不允许进入项目结构,因为正在进行同步。最美丽的就是那些未解决的符号。

我相信我已经尝试了大部分 Android Studio 的东西:

  • 使缓存无效并重新启动
  • 只需重新启动
  • 重建项目
  • ./gradlew clean build
  • 删除 ~/.gradle 和 ./gradle 并重建
  • 重新启动笔记本电脑
  • 更新所有插件

伙计们,你们有什么想法可以让工作室只与 KMM 一起工作吗?然后我应该如何让它继续工作?正如我已经说过的,问题不是特定于工作室的,而是特定于 KMM 的,因为常规的 android 项目构建得很好。

Android Studio 4.1.2

Mac OS Big Sur 11.2

Kotlin 1.4.30-release-Studio4.1-1

解决方法

我猜你遇到过this issue

实际上我不知道如何解决它,但是您可以尝试 AS 4.2-beta,因为此 AS 版本中似乎不存在此问题。

同样的事情发生在我身上,我切换到 AS 4.2 beta

你我唯一的不同是 Kotlin 版本:我有 1.4.21

更新

原来我在 KMM 插件和 Kolin 版本之间配置错误。

AS 4.1 只能与 KMM 插件 0.2.0 和 Kotlin 1.4.20 一起正常工作,而我使用的是 Kotlin 1.4.30。切换回 Kotlin 1.4.20 解决了这个问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...