Android Studio如何手动运行gradle sync?

228 人关注

我在Android Studio中调试Gradle问题,看到有 "Run gradle sync "的参考,但我不知道如何运行这个命令。

如何从Android studio或Mac终端运行 "Gradle sync"?

2 个评论
如果你是为了"......或Mac终端 "而来,那你就不走运了。这些答案都不是关于从命令行同步Android Studio本身。
请看下面@Cai的回答
android
android-studio
gradle
sync
Alex Stone
Alex Stone
发布于 2015-04-10
11 个回答
Cai
Cai
发布于 2021-06-18
已采纳
0 人赞同

Android studio的工具栏上应该有这个按钮,标记为 "与Gradle文件同步项目"

编辑:我不知道它是什么时候被改变的,但现在看起来像这样。

编辑:这是在3.3.1上的样子 OR by going to File -> Sync Project with Gradle Files 从菜单栏中选择。

在Adnroid Studio 3.0.1中缺失。
@RomanM 它没有丢失...它移到了 "文件 "中...所以,它就在保存图标的旁边
我在Android Studio 4的工具栏或文件菜单中没有看到这个按钮。
Yarh
如果这个问题没有回答OP的问题,为什么会有这么多的支持率?
真正的问题是:为什么负责Android Studio的人总是 改变 这个功能? 这显然是一个修复没有损坏的东西的案例。
Hugo Gresse
Hugo Gresse
发布于 2021-06-18
0 人赞同

警告 : --recompile-scripts 命令在 gradle 的5.0版本中被废弃。 要检查你的 gradle 版本,请运行 gradle -v

./gradlew --recompile-scripts

它将做一个同步,而不建立任何东西。

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

./gradlew build

它将同步和构建你的应用程序,并且比单纯的Gradle同步花费更长的时间。

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

是的,但构建的作用更大,对吗?同步和构建之间的区别是什么?
build是一个非常通用的任务。它就像用大锤子敲开一个坚果。在安卓项目中,运行 "构建 "任务可能要花很长时间
我使用com.android.tools.build:gradle:3.5.1,而它没有选项--recompile-scripts。
自从gradle 5.0以来, --recompile-scripts已经成为一个不为人知的命令行选项。
CoolMind
CoolMind
发布于 2021-06-18
0 人赞同

在Android Studio中 3.3 it is here:

根据答案 https://stackoverflow.com/a/49576954/2914140 在Android Studio中 3.1 it is here:

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

ROFL!我已经为这个按钮找了2天了!谢谢!
@swooby,欢迎你。我也找了一段时间,甚至问了一个问题,他们也帮助了我。
这个选项似乎已经不存在了? i.imgur.com/cNFUoxB.png (刚才的截图,在Android Studio 3.5.3中)
@Venryx,这很奇怪。我有3.6.3,这个菜单仍然存在( imgur.com/a/F8FCpvk ).总之,最好是在工具栏中使用一个按钮。
这显然是一些AndroidStudio/Gradle文件过期的问题。在删除它们并重新导入项目后,该选项又出现了。
Amrit Pal Singh
Amrit Pal Singh
发布于 2021-06-18
0 人赞同

Keyboard shortcut lovers can add a shortcut for running gradle sync manually by going to File -> Settings -> Keymap -> Plugins -> Android Support -> Sync Project with gradle files (Right click on it to add keyboard shortcut) -> Apply -> OK and you are done. Gradle Sync keyboard shortcut 选择任何一个方便的键作为你的gradle sync的快捷键,并且不与其他快捷键冲突,(我选择了Shift + 5作为我的gradle sync键),所以接下来当你想手动运行gradle sync时,只要按这个键盘快捷键。

CCJ
it's 'Android Studio->Preferences' for the first two steps on Mac OS X
+1 问题的最佳答案
最佳答案,不需要从android studio的类似图标中找到同步项目图标。只要按Shift+5就可以了。
0 人赞同

I presume it is referring to Tools > Android > "Sync Project with Gradle Files" from the Android Studio main menu.

oc1d
oc1d
发布于 2021-06-18
0 人赞同
gradle --recompile-scripts

似乎不需要建立任何东西就能进行同步。 你可以通过以下方式启用自动构建

gradle --recompile-scripts --continuous

更多信息请参考文档。

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

gradle 5.1.1没有选项--recompile-scripts
Andrew
Andrew
发布于 2021-06-18
0 人赞同

Shortcut (Ubuntu, Windows):

Ctrl + F5

会将项目与Gradle文件同步。

在MacOS上,如果没有定义快捷方式,就应该指定它。描述如下 stackoverflow.com/a/29642935/1839096
Victor Choy
Victor Choy
发布于 2021-06-18
0 人赞同

我认为 ./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也会出现jar。所以我可以在gralde脚本中得到同样的结果。

Besides, gradle --recompile-scripts does not work for the problem.

嗨,Victor,我有一个麻烦,可能证明你错了,这是我得到的,我从我的gradle.properties中设置了configProductID=11111,从我的build.gradle中,我添加了 "resValue "string"。如果我从ADT中进行构建清理,就可以生成R.string.ProductID这个资源。然后我可以做gradlew assembleDebug来构建。 然后我把我的配置名称从 "ProductID "改为 "myProductID",我在做 "gradlew tasks "时就会出错,我也不能做 "gradlew clean",所有这些都会失败。 我还在挣扎。因为".\gradlew.bat --recompile-scripts "似乎已经不存在了?
yunfei
yunfei
发布于 2021-06-18
0 人赞同

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

这是我得到的结果。 我在gradle.properties中设置了configProductID=11111,在我的build.gradle中,我添加了

resValue "string", "ProductID", configProductID

如果我从ADT中进行构建,资源R.string.ProductID可以被生成。然后我就可以成功地执行下面的命令。

gradlew assembleDebug

但是,由于我正试图建立构建服务器,我不希望得到ADT IDE的帮助,所以我需要避免使用ADT build clean。我的问题来了。 现在我把我的资源名称从 "ProductID "改为 "myProductID",我这样做。

gradlew clean

I get error

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

If I try with:

.\gradlew.bat --recompile-scripts

I just get error of

Unknown command-line option '--recompile-scripts'.
    
I've the same error-message some minutes ago: > Unsupported class file major version 57 The issue for me was, that gradle doesn't work with current openJdk13 on Linux (I use Manjaro... an Arch-Like Linux). So to fix this, I've done this: I've checked which Java version I've installed at my pc, and choosed the version 8: sudo archlinux-java stauts sudo archlinux-java set java-8-openjdk Maybe this helping you out, even If your system seems to be windows. So try another SDK Version. Maybe it also solve your issue.
嗨,@suther,非常感谢你的回答,我已经找到了根本原因,并进行了修复,我认为这不是因为JAVA版本的问题。但正如我所说,"gradlew clean "不等于 "ADT clean"。我的解决方法是简单地执行 "gradlew :app:dependencies",这将从gradle配置文件中生成资源ID。
Francis Bacon
Francis Bacon
发布于 2021-06-18
0 人赞同

任何人想用命令行来同步项目与gradle文件,请注意。

从Gradle 5.0开始。

删除了 --recompile-scripts 命令行选项。

  • https://docs.gradle.org/5.0/userguide/upgrading_version_4.html#potential_breaking_changes
  • https://docs.gradle.org/current/userguide/command_line_interface.html
  • https://github.com/gradle/gradle/issues/1425
  •