Android Studio如何手动运行Gradle同步?


135

我正在Android Studio中调试Gradle问题,请参阅对“运行gradle同步”的引用,但不确定如何运行此命令。

如何从Android Studio或Mac终端运行“ Gradle sync”?

Answers:


212

Android Studio应在工具栏中标记为“将项目与Gradle文件同步”的按钮

编辑:我不知道何时更改它,但现在看起来像这样:

在此处输入图片说明

编辑:这是在3.3.1上的外观, 或者从菜单栏中转到文件->与Gradle文件同步项目在此处输入图片说明


2
在Adnroid Studio 3.0.1中丢失
Roman M,

10
@RomanM它不缺少...它移到“文件” ...所以,它旁边是保存图标
W0rmH0le

49

警告--recompile-scriptsgradle的5.0版开始,该命令已被弃用。要检查您的gradle版本,请运行gradle -v

./gradlew --recompile-scripts

它将进行同步,而无需构建任何内容。


或者,在您的根项目中使用命令行

./gradlew build

它将同步并构建您的应用,并且花费的时间比Gradle同步要长

要查看所有可用的gradle任务,请使用 ./gradlew tasks


2
是的,但是构建更正确吗?sync和build有什么区别?
JohnyTex19年

构建是一项非常普通的任务。就像用大锤把坚果弄碎一样。在Android项目上,运行“构建”任务可能需要很长时间!
cesards's

10
我使用com.android.tools.build:gradle:3.5.1,它没有选项--recompile-scripts
geosmart

从gradle 5.0开始,-recompile-scripts成为未知的命令行选项,
Francis Bacon

28

在Android Studio 3.3中,它位于:

在此处输入图片说明

根据Android Studio 3.1中的答案https://stackoverflow.com/a/49576954/2914140,它位于此处:

在此处输入图片说明

此命令已移至File > Sync Project with Gradle Files

在此处输入图片说明


5
ROFL!我一直在寻找此按钮2天!谢谢!
swooby

1
@swooby,欢迎您。我也找到了一段时间,甚至问了一个问题,他们也提供了帮助。
CoolMind

此选项似乎不再存在?i.imgur.com/cNFUoxB.png(屏幕截图,在Android Studio 3.5.3中进行)
Venryx

@Venryx,很奇怪。我有3.6.3,并且此菜单仍然存在(imgur.com/a/F8FCpvk)。无论如何,最好使用工具栏中的按钮。
CoolMind

某些AndroidStudio / Gradle文件已过时,这显然是一个问题。删除它们并重新导入项目后,该选项再次出现。
Venryx

23

键盘快捷键爱好者可以通过以下方式添加一个手动运行gradle同步的快捷方式:转到文件->设置->键盘映射->插件-> Android支持->与gradle文件同步项目(右键单击以添加键盘快捷方式)->应用- >确定,您就完成了。Gradle Sync键盘快捷键选择任何方便的键作为您的gradle同步快捷方式,该快捷键与任何其他快捷键均不冲突(我选择了Shift + 5作为我的gradle同步键),因此接下来当您要手动运行gradle同步时,只需按此键盘快捷键即可。


2
Mac OS X上的前两个步骤是“ Android Studio->首选项”
CCJ,2015年

1
+1问题的最佳答案
nAkhmedov '16

最佳答案,无需从android studio的类似图标中找到“同步项目”图标。只需按Shift + 5即可完成。
Er Kaushik Kajavadara

13

我想它是指Android Studio主菜单中的工具> Android>“使用Gradle文件同步项目”。




1

我认为./gradlew tasks与相同 Android studio sync。为什么?我会解释的。

测试jacoco覆盖率报告时遇到问题。当我./gradlew clean :Test:testDebugUnitTest直接在命令行中运行时,出现错误。

Error opening zip file or JAR manifest missing : build/tmp/expandedArchives/org.jacoco.agent-0.8.2.jar_5bdiis3s7lm1rcnv0gawjjfxc/jacocoagent.jar

但是,如果我先单击android studio sync,它将运行正常。因为build/../jacocoagent.jar出现自然。我不知道为什么,也许jacoco插件中有错误。我发现正在运行的装置也.gradlew tasks会使罐子也出现。因此,我可以在gralde脚本中获得相同的结果。

此外,gradle --recompile-scripts不适用于该问题。


嗨,维克多,我很麻烦,可能会证明您错了,这就是我所得到的,我从gradle.properties中设置了configProductID = 11111,从build.gradle中添加了“ resValue“ string”。从ADT中生成资源R.string.ProductID,然后可以执行gradlew assembleDebug进行构建,然后将配置名称从“ ProductID”更改为“ myProductID”,执行“ gradlew任务”时也会出错我不能做“ gradlew clean”,它们全部都失败了,但我仍在努力。由于“。\ gradlew.bat --recompile-scripts”似乎不再存在?
yunfei

0

我有麻烦可能证明gradlew clean不等于ADT build clean。现在,我正在努力修复它。

这是我得到的:我从gradle.properties,build.gradle中设置了configProductID = 11111,然后添加

resValue "string", "ProductID", configProductID

如果我从ADT进行构建清理,则可以生成资源R.string.ProductID。然后,我可以成功地执行波纹管命令。

gradlew assembleDebug

但是,在尝试设置构建服务器时,我不需要ADT IDE的帮助,因此我需要避免使用ADT build clean。这是我的问题。现在,我将资源名称从“ ProductID”更改为“ myProductID”,我这样做:

gradlew clean

我得到错误

PS D:\work\wctposdemo> .\gradlew.bat clean

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\work\wctposdemo\app\build.gradle'

* What went wrong:
Could not compile build file 'D:\work\wctposdemo\app\build.gradle'.
> startup failed:
  General error during semantic analysis: Unsupported class file major version 57

如果我尝试:

.\gradlew.bat --recompile-scripts

我只是错误

Unknown command-line option '--recompile-scripts'.

几分钟前我有同样的错误消息:>不支持的类文件主要版本57对我来说,问题是,gradle无法与Linux上的当前openJdk13一起使用(我使用Manjaro ...类似于Linux的Arch)。因此,要解决此问题,我已经完成了这一点:我检查了我在PC上安装的Java版本,然后选择了版本8:sudo archlinux-java stauts sudo archlinux-java set java-8-openjdk也许有帮助即使您的系统似乎是Windows,您也可以退出。因此,请尝试另一个SDK版本。也许它也可以解决您的问题。
suther

嗨@suther,非常感谢您的答复,我找到了根本原因并解决了问题,我不认为这是因为JAVA版本。但是正如我所描述的,“ gradlew clean”不等于“ ADT clean”。我的解决方法是简单地执行“ gradlew:app:dependencies”,这将从gradle配置文件中生成资源ID。
yunfei

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.