You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Android项目时.gradle文件夹未创建且Gradle守护进程启动失败(地址已被占用)技术求助

解决Gradle守护进程启动失败(端口占用)及.gradle文件夹未创建问题

问题描述

运行Android项目时,.gradle文件夹未自动创建,同时构建失败,核心错误提示为:

FAILURE: Build failed with an exception.
出错原因:java.net.BindException: Address already in use: Cannot bind

完整错误堆栈信息如下:

org.gradle.api.UncheckedIOException: java.net.BindException: Address already in use: Cannot bind
	at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:61)
	at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41)
	at org.gradle.cache.internal.locklistener.FileLockCommunicator.<init>(FileLockCommunicator.java:51)
	at org.gradle.cache.internal.locklistener.DefaultFileLockContentionHandler.getCommunicator(DefaultFileLockContentionHandler.java:263)
	at org.gradle.cache.internal.locklistener.DefaultFileLockContentionHandler.reservePort(DefaultFileLockContentionHandler.java:255)
	at org.gradle.cache.internal.DefaultFileLockManager.lock(DefaultFileLockManager.java:108)
	at org.gradle.cache.internal.DefaultFileLockManager.lock(DefaultFileLockManager.java:95)
	at org.gradle.cache.internal.DefaultFileLockManager.lock(DefaultFileLockManager.java:90)
	at org.gradle.cache.internal.OnDemandFileAccess.updateFile(OnDemandFileAccess.java:51)
	at org.gradle.cache.internal.SimpleStateCache.update(SimpleStateCache.java:87)
	at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator$1.create(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:50)
	at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator.doUpdate(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:67)
	at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator.update(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:47)
	at org.gradle.launcher.daemon.registry.PersistentDaemonRegistry.store(PersistentDaemonRegistry.java:232)
	at org.gradle.launcher.daemon.server.DaemonRegistryUpdater.onStart(DaemonRegistryUpdater.java:80)
	at org.gradle.launcher.daemon.server.Daemon.start(Daemon.java:171)
	at org.gradle.launcher.daemon.bootstrap.DaemonMain.doAction(DaemonMain.java:125)
	at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:50)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
	at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
	at org.gradle.launcher.daemon.bootstrap.GradleDaemon.main(GradleDaemon.java:22)
Caused by: java.net.BindException: Address already in use: Cannot bind
	at java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method)
	at java.net.DualStackPlainDatagramSocketImpl.bind0(DualStackPlainDatagramSocketImpl.java:84)
	at java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:93)
	at java.net.DatagramSocket.bind(DatagramSocket.java:392)
	at java.net.DatagramSocket.<init>(DatagramSocket.java:242)
	at java.net.DatagramSocket.<init>(DatagramSocket.java:299)
	at org.gradle.cache.internal.locklistener.FileLockCommunicator.<init>(FileLockCommunicator.java:49)
	... 22 more

问题根源

.gradle文件夹未创建是因为Gradle守护进程从未成功启动——这个文件夹是Gradle首次正常运行后才会自动生成的。而守护进程启动失败的核心原因是它需要绑定的端口被其他进程占用。

解决方案

按以下步骤尝试,从简单到复杂:

1. 快速释放端口:杀掉占用进程或重启电脑

  • Windows系统操作:
    • 打开命令提示符,执行taskkill /F /IM java.exe(直接杀掉所有Java进程,Gradle守护进程基于Java运行);如果担心误杀其他Java程序,也可以用netstat -ano查找占用Gradle常用端口的进程ID,再用taskkill /F /PID <进程ID>单独终止。
    • 嫌麻烦的话直接重启电脑,所有占用的端口会被自动释放,这是最省心的方式。

2. 清理Gradle缓存与守护进程状态

  • 若.gradle文件夹还未生成,手动进入用户目录(比如C:\Users\你的用户名),新建名为.gradle的空文件夹。
  • 若已有.gradle文件夹,删除其中的daemon、caches、wrapper三个子目录——这些目录存储了守护进程状态、构建缓存和下载的Gradle包,删除后会重新生成干净的文件。
  • 重启Android Studio,点击工具栏的Sync Project with Gradle Files按钮重新同步项目。

3. 手动指定Gradle守护进程端口

如果端口占用问题反复出现,可以手动指定一个未被占用的端口:

  • 在项目根目录的gradle.properties文件中添加以下配置:
    org.gradle.daemon.port=50051
    
    这里的50051可以换成任意未被占用的端口号,保存后重新同步项目即可。

4. 检查JDK配置兼容性

Gradle 6.7对JDK版本有要求(推荐JDK 8或11),确保Android Studio使用的JDK符合要求:

  • 打开Android Studio,依次点击File > Project Structure > SDK Location,查看JDK Location是否指向兼容的JDK路径(推荐使用Android Studio自带的JDK)。

内容的提问来源于stack exchange,提问作者d.code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 01:42:30