Android Studio:无法启动守护进程

61

当我尝试在Android Studio中导入一个Gradle项目时,遇到了以下错误:

Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at http://gradle.org/docs/1.8/userguide/gradle_daemon.html
Please read below process output to find out more: 

这是我看到的输出:

18:25:42.484 [main] DEBUG o.g.l.daemon.bootstrap.DaemonMain - Assuming the daemon was started with following jvm opts: [-XX:MaxPermSize=256m, -XX:+HeapDumpOnOutOfMemoryError, -Xmx1024m, -Dfile.encoding=windows-1252]
18:25:43.254 [main] DEBUG o.g.l.daemon.server.DaemonServices - Creating daemon context with opts: [-XX:MaxPermSize=256m, -XX:+HeapDumpOnOutOfMemoryError, -Xmx1024m, -Dfile.encoding=windows-1252]
18:25:43.306 [DEBUG] [org.gradle.logging.internal.DefaultLoggingConfigurer] Finished configuring with level: DEBUG, configurers: [org.gradle.logging.internal.OutputEventRenderer@47078ad, org.gradle.logging.internal.logback.LogbackLoggingConfigurer@7402a821, org.gradle.logging.internal.JavaUtilLoggingConfigurer@5a6c4a07]
18:25:43.356 [INFO] [org.gradle.launcher.daemon.server.Daemon] start() called on daemon - DefaultDaemonContext[uid=e58252c1-7a49-4be4-a6cd-1bd3d6d0880d,javaHome=C:\Program Files\Java\jdk1.7.0_45,daemonRegistryDir=C:\Users\Sowmya\.gradle\daemon,pid=15432,idleTimeout=60000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252]
18:25:43.362 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] updating lastActivityAt to 1386593743362
18:25:43.702 [DEBUG] [org.gradle.messaging.remote.internal.inet.InetAddressFactory] Adding IP addresses for network interface lo
18:25:43.705 [DEBUG] [org.gradle.messaging.remote.internal.inet.InetAddressFactory] Is this a loopback interface? true
18:25:43.706 [DEBUG] [org.gradle.messaging.remote.internal.inet.InetAddressFactory] Adding loopback address /127.0.0.1
18:25:43.707 [DEBUG] [org.gradle.messaging.remote.internal.inet.InetAddressFactory] Adding loopback address /0:0:0:0:0:0:0:1
18:25:43.708 [DEBUG] [org.gradle.messaging.remote.internal.inet.InetAddressFactory] Adding IP addresses for network interface net0
18:25:43.711 [DEBUG] [org.gradle.messaging.remote.internal.inet.InetAddressFactory] Is this a loopback interface? false
DefaultDaemonContext[uid=e58252c1-7a49-4be4-a6cd-1bd3d6d0880d,javaHome=C:\Program Files\Java\jdk1.7.0_45,daemonRegistryDir=C:\Users\Sowmya\.gradle\daemon,pid=15432,idleTimeout=60000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252]
18:25:43.951 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
18:25:43.954 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
18:25:43.957 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
18:25:43.962 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
18:25:43.963 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
18:25:43.966 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
18:25:43.976 [ERROR] [system.err] 
18:25:43.977 [ERROR] [system.err] FAILURE: Build failed with an exception.
18:25:43.977 [ERROR] [system.err] 
18:25:43.978 [ERROR] [system.err] * What went wrong:
18:25:43.979 [ERROR] [system.err] Could not write cache value to 'C:\Users\Sowmya\.gradle\daemon\1.8\registry.bin'.
18:25:43.979 [ERROR] [system.err] 
18:25:43.980 [ERROR] [system.err] * Try:
18:25:43.981 [ERROR] [system.err] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
18:25:44.009 [INFO] [org.gradle.launcher.daemon.bootstrap.DaemonMain] Daemon[pid = 15432] process has finished.
18:25:44.010 [DEBUG] [org.gradle.launcher.daemon.registry.PersistentDaemonRegistry] Removing daemon address: [9ae053cd-4dc2-4cb8-8f60-bb3c5983eb67 port:55117, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]]
18:25:44.011 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
18:25:44.012 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
18:25:44.013 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
18:25:44.014 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
18:25:44.015 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
18:25:44.016 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
18:25:44.021 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] VM shutdown hook was unable to remove the daemon address from the registry. It will be cleaned up later.
org.gradle.api.GradleException: Could not write cache value to 'C:\Users\Sowmya\.gradle\daemon\1.8\registry.bin'.
    at org.gradle.cache.internal.SimpleStateCache.serialize(SimpleStateCache.java:74)
    at org.gradle.cache.internal.SimpleStateCache.access$100(SimpleStateCache.java:28)
    at org.gradle.cache.internal.SimpleStateCache$2.run(SimpleStateCache.java:50)
    at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.doWriteAction(DefaultFileLockManager.java:198)
    at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.writeFile(DefaultFileLockManager.java:187)
    at org.gradle.cache.internal.OnDemandFileAccess.writeFile(OnDemandFileAccess.java:58)
    at org.gradle.cache.internal.SimpleStateCache.set(SimpleStateCache.java:48)
    at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator.set(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:38)
    at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator.update(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:46)
    at org.gradle.launcher.daemon.registry.PersistentDaemonRegistry.remove(PersistentDaemonRegistry.java:109)
    at org.gradle.launcher.daemon.server.Daemon$1.run(Daemon.java:100)
Caused by: java.io.FileNotFoundException: C:\Users\Sowmya\.gradle\daemon\1.8\registry.bin (Access is denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
    at org.gradle.cache.internal.SimpleStateCache.serialize(SimpleStateCache.java:67)
    ... 10 more`

我已经关闭了在SO解决方案中提到的反病毒软件,但似乎没有任何作用。


1
从答案中看起来似乎是内存问题。(删除gradle对我没用)我尝试了关闭电脑再重新开机,这样就解决了。如果通常情况下你不会遇到这个错误,这可能会有所帮助。 - Jon
21个回答

96

尝试从C:\Users\目录中删除您的.gradle文件夹,并再次尝试。


我删除了C:\Uers\Sowmya.gradle目录下的守护进程文件,然后它就可以工作了。 :) 谢谢。 - buggydroid
1
如果您遇到“无法从 /Users/bj012293/.gradle/daemon/1.11/registry.bin 读取缓存值”的错误,这也适用。 - Bradford2000
3
哦,它是 C:\Users\Sowmya.gradle。 - MohsinSyd
如果我需要 gradle.properties 文件,并且需要守护进程运行,该怎么办? - Dejan
1
如果我删除了 .gradle 文件夹,那么这一次它可以工作,但是下一次再运行 Android Studio 时,它会再次显示出错。 - umerk44
显示剩余4条评论

22

1.如果您在Windows中打开了太多的应用程序,并使Gradle没有足够的内存来启动守护进程。所以当您遇到这种情况时,您可以关闭一些应用程序,如iTunes等。 然后重新启动您的Android Studio。

2.文件菜单->使缓存无效/重新启动->使其无效并重新启动。


我刚刚关闭了一些应用程序,不需要重新启动IDE。点个赞,谢谢。 - Daahrien

10

我之前也遇到过类似的问题。但是通过无效化缓存来解决了它。

从文件菜单中选择 - > 无效化缓存/重新启动...

这对我来说解决了问题。


7
在Eclipse中,转到窗口 -> 首选项 -> gradle ->参数。找到JVM参数,选择单选按钮“使用:”,并编写参数-Xms128m -Xmx512m。然后点击应用按钮。

5

检查您的项目文件夹。您可能有一个名为gradle.properties的文件,在其中检查是否有以下行:

org.gradle.jvmargs=-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

在我的情况下,我只是删除了该文件,但请检查内容以查看您是否实际上想保留某些设置。


4

尝试这个...我已经尝试过了,对我有效

这个问题与内存不足有关...

关闭你的浏览器、Visual Studio和其他服务...

之后运行以下命令

ionic build android 

它将成功运行。

//Solutions is
create "gradle.properties" file in android folder and add following line into file
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m

<your project>\platforms\android\gradle.properties

您可以打开浏览器和其他应用程序。

ionic build android

现在它将正常工作。

此解决方案适用于Visual Studio Code和Cordova工具插件。 - EnocNRoll - AnandaGopal Pardue

1

我在Intellij Idea中遇到了这个问题,并通过以下方式解决:

尝试在“设置|构建、执行、部署|构建工具|Gradle|Gradle VM选项”中将“VM选项”设置为-Xmx512m。


1
有时候在Windows上打开太多应用程序,会导致gradle没有足够的内存来启动守护进程。所以当你遇到这种情况时,可以关闭一些应用程序,比如Chrome等,然后重新启动Android Studio。

1
在我们的工作环境中,我们使用Windows 7 64位操作系统,机器被锁定,并运行了McAfee防病毒软件并开启了主机入侵检测。关闭主机入侵检测后,Gradle终于可以正常工作,因此显然存在某些病毒扫描软件的问题。
更新:我说得太早了。是的,我不再收到“无法启动守护进程”的消息,但现在出现了以下错误:
错误:无法使用M2模式'http://jcenter.bintray.com/[organisation]/[module]/[revision]/[artifact]-revision.[ext]'列出版本。

1
我遇到了同样的问题,这里的其他答案都没有帮助到我的情况。
原来是因为我的Android Studio项目默认使用JDK 8。
在项目设置中更改为指向JDK 7安装位置后,问题得以解决。

谢谢你,我已经将我的Java Home设置为旧版本的Java来构建一些Ant项目,但是忘记重置它了。 - WendyG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接