【问题标题】:KMM: Build fails caused by being locked by another Gradle instance, when switching the OS to buildKMM:切换操作系统进行构建时,由于被另一个 Gradle 实例锁定而导致构建失败
【发布时间】: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。

标签: gradle kotlin-multiplatform-mobile


【解决方案1】:

尝试将gradle 更新为7.1.1(最新版本)

如果这没有帮助,请考虑在jetbrains issue tracker 上创建一个问题,因为这似乎不是一个典型的问题,并且在那里可以更快地解决

【讨论】:

  • JDK 位置错误。我应该在 Android Studio 的事件日志中注意到一个警告。我设置了 Embedded JDK,但我需要设置 JAVA_HOME。不需要将 gradle 更新到最新版本。感谢您的建议!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2018-01-12
  • 2018-04-22
  • 2015-09-04
  • 1970-01-01
  • 2023-01-02
相关资源
最近更新 更多