如何为终端和Android Studio运行相同的Gradle守护程序?

时间:2016-09-28 09:37:20

标签: android android-studio gradle android-gradle daemon

我注意到Gradle使用的是一个单独的守护进程而不是终端,它使用gradlew(包装器)来运行自己的Gradle守护进程实例。

当我尝试通过命令gradle --stop在Android Studio中停止Gradle任务时,我注意到了这一点。它说没有守护进程在运行。但是当我使用./gradlew --stop时,它会停止Gradle任务。这就像我有两个守护进程为Android Studio运行一个守护进程和一个终端运行。守护进程。

如何让Android Studio使用终端正在使用的同一个守护进程(当我通过gradle build命令启动Gradle任务时,终端启动一个守护进程并使用它。)

我该怎么做?

2 个答案:

答案 0 :(得分:3)

我通过多种方式测试找到答案。

关键是当你使用Gradle包装器时,它将为每个项目启动一个新的守护进程,即使它们使用相同的版本,你可以通过Android Studio中的一个更改停止使用Gradle包装器,因此它使用系统Gradle守护进程(不使用包装器)并为每个项目运行一个新的守护进程)

您需要转到“设置 - >构建,执行,部署 - >构建工具 - > Gradle”,然后选中单选按钮“使用本地Gradle分发”并将“Gradle Home”字段发送到系统Gradle_Home安装。

虽然您需要在系统上安装Gradle。

对我来说,它的目录是:“/ home / [my_user] /。gradle / wrapper / dists / gradle-3.1-all / ejgglywf033yp6s4x8ahmgm74 / gradle-3.1”

关于这一点的好处是你将只有一个Gradle守护进程实例(启动守护进程需要时间 - 特别是如果你像我一样同时处理多个项目),而负面的一点就是你将不得不改变当您要迁移到新的Gradle版本分发时手动创建目录。

我不知道为什么但是使用这种方法Gradle在我的电脑上同步更快。如果它在您的计算机中也更快,请告诉我。

答案 1 :(得分:-1)

这是一项很多工作,但我找到了比使用本地gradle分发更好的解决方案

请查看我的错误报告,其中包含所有内容的解释,并希望Google或Gradle在将来的版本中解决此问题

https://issuetracker.google.com/issues/68374709