空 KMM 项目卡在 gradle 同步中

Posted

技术标签:

【中文标题】空 KMM 项目卡在 gradle 同步中【英文标题】:Empty KMM project is stuck with gradle sync 【发布时间】:2021-05-13 15:21:24 【问题描述】:

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

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

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

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

我相信我已经尝试了大部分 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

【问题讨论】:

【参考方案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 解决了这个问题。

【讨论】:

嗨!谢谢你分享这个。我今天会尝试并返回结果 嗯,测试版可以工作,至少现在是这样。希望明天不要崩溃。最奇怪的是它以前工作过,但在某个时刻崩溃了。仍然认为 JB 的人应该注意可能的 Big Sur 兼容性问题

以上是关于空 KMM 项目卡在 gradle 同步中的主要内容,如果未能解决你的问题,请参考以下文章

在 gradle 项目中添加 graphql 依赖项时出错

intellij idea 导入gradle项目卡在 gradle: build model...

IOS的KMM依赖设置(OpenCV)

flutter 卡在Running Gradle task 'assembleDebug'...

解决AndroidStudio导入项目卡在gradle加载界面

Kotlin Multiplatform 项目中的语法突出显示失败