KMM:切换操作系统进行构建时,由于被另一个 Gradle 实例锁定而导致构建失败
Posted
技术标签:
【中文标题】KMM:切换操作系统进行构建时,由于被另一个 Gradle 实例锁定而导致构建失败【英文标题】:KMM: Build fails caused by being locked by another Gradle instance, when switching the OS to build 【发布时间】:2021-10-13 06:00:44 【问题描述】:我创建了一个 KMM 项目(ios 框架发行版是 CocoaPods),并在不更改代码的情况下构建了应用程序。
当我在构建 android 应用程序之后构建 iOS 应用程序时(即使我在 iOS 之后运行 Android),它会失败并出现以下错误。
Gradle could not start your build.
> Could not create service of type ResourceSnapshotterCacheService using GradleUserHomeServices.createResourceSnapshotterCacheService().
> Timeout waiting to lock file hash cache (/Users/<user-name>/.gradle/caches/6.7.1/fileHashes). It is currently in use by another Gradle instance.
Owner PID: 57033
Our PID: 57624
Owner Operation:
Our operation:
Lock file: /Users/<user-name>/.gradle/caches/6.7.1/fileHashes/fileHashes.lock
如果我杀死另一个 Gradle 进程并删除锁定文件,则构建将成功。但我不能每次都这样做。
不知道哪里不对,和别人有什么不同。
顺便说一句,我创建的项目支持improved Gradle task embedAndSignAppleFrameworkForXcode
。
我的环境在下面……
macOS Big Sur 11.4 Android Studio 4.2.2 Kotlin 1.5.21 Kotlin Multiplatform Mobile 0.2.6 (202-1.5.10-release-894-IJ)-8 Gradle 6.7.1 AGP 4.2.2 Java 11.0.8 2020-07-14 LTS Xcode:12.5.1 (12E507)【问题讨论】:
JDK 位置错误。需要设置JAVA_HOME。 【参考方案1】:尝试将gradle
更新为7.1.1
(最新版本)
如果这没有帮助,请考虑在jetbrains issue tracker 上创建一个问题,因为这似乎不是一个典型的问题,并且在那里可以更快地解决
【讨论】:
JDK 位置错误。我应该在 Android Studio 的事件日志中注意到一个警告。我设置了 Embedded JDK,但我需要设置 JAVA_HOME。不需要将 gradle 更新到最新版本。感谢您的建议!以上是关于KMM:切换操作系统进行构建时,由于被另一个 Gradle 实例锁定而导致构建失败的主要内容,如果未能解决你的问题,请参考以下文章