引起:java.io.IOException:无法锁定使用情况跟踪假脱机文件

时间:2017-12-05 06:57:37

标签: java android gradle build.gradle

使用gradle构建android应用程序时遇到问题,这是构建它时遇到的错误;

Caused by: java.io.IOException: Unable to lock usage tracking spool file
            at com.android.tools.analytics.JournalingUsageTracker.newTrackFile(JournalingUsageTracker.java:98)
            at com.android.tools.analytics.JournalingUsageTracker.<init>(JournalingUsageTracker.java:78)
            ... 121 more
    Caused by: java.nio.channels.OverlappingFileLockException
            at com.android.tools.analytics.JournalingUsageTracker.newTrackFile(JournalingUsageTracker.java:95)
            ... 122 more

以下是我的gradle详细信息:https://pastebin.com/6v0dk5in

 ./gradlew --version

------------------------------------------------------------
Gradle 4.3.1
------------------------------------------------------------

Build time:   2017-11-08 08:59:45 UTC
Revision:     e4f4804807ef7c2829da51877861ff06e07e006d

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_66 (Oracle Corporation 25.66-b17)
OS:           Mac OS X 10.11 x86_64

2 个答案:

答案 0 :(得分:1)

杀死java进程并重新构建修复它但你必须在每次构建时都这样做。

os x el capitan 10.11(15A284)

https://github.com/gradle/gradle/issues/937

https://docs.gradle.org/current/userguide/gradle_daemon.html

答案 1 :(得分:0)

我发现了另外两个有用的Stackoverflow线程:

在这种情况下的问题是Gradle Daemon持有文件锁并且后续构建失败。 Gradle问题提供了更可持续的解决方法:

Gradle daemon locks files by leaving file handles open

  

通过将org.gradle.daemon=false添加到gradle.properties

来停用该守护程序

如何禁用Gradle build in the documentation

还有很多其他变体

通过避免重新启动JVM并重新加载Gradle jar,以及通过缓存信息,Gradle守护程序可以更快地进行构建。