ChatGPT解决这个技术问题 Extra ChatGPT

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

我正在 Android Studio 中调试 Gradle 问题,并看到对“运行 gradle sync”的引用,但我不确定如何运行此命令。

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

如果你来这里是为了“……或 Mac 终端”,那你就倒霉了。这些答案都不是关于从命令行同步 Android Studio 本身。
请参阅下面@Cai 的答案

z
zwcloud

https://i.stack.imgur.com/d15o5.png

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

https://i.stack.imgur.com/QOC20.png

https://i.stack.imgur.com/8pPCL.png


Adnroid Studio 3.0.1 中缺少
@RomanM 它没有丢失......它移动到“文件”......所以,它旁边是保存图标
我在 Android Studio 4 的工具栏或文件菜单中看不到该按钮。
我可以确认同步按钮出现在 Android Studio 4.0.1 的工具栏上
如果这个问题没有回答 OP 的问题,为什么会有这么多赞成票?
D
Denialos

警告:自 gradle 的 5.0 版起,--recompile-scripts 命令已被弃用。要检查您的 gradle 版本,请运行 gradle -v

./gradlew --recompile-scripts

它会在不构建任何东西的情况下进行同步。

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

./gradlew build

它将同步和构建您的应用程序,并且比 Gradle 同步需要更长的时间

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


是的,但是 build 做得更多对吗?同步和构建有什么区别?
build 是一个非常通用的任务。这就像用大锤敲碎坚果。在 Android 项目上,运行“构建”任务可能需要很长时间!
我用的是com.android.tools.build:gradle:3.5.1,它没有选项--recompile-scripts
从 gradle 5.0 开始, --recompile-scripts 已成为一个未知的命令行选项,
C
CoolMind

在 Android Studio 3.3 中它在这里:

https://i.stack.imgur.com/hBr9j.png

根据 Android Studio 3.1 中的答案 https://stackoverflow.com/a/49576954/2914140,它在这里:

https://i.stack.imgur.com/N6AWD.png

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

https://i.stack.imgur.com/mfRrq.png


滚!我一直在为这个按钮寻找 2 天!谢谢!
@swooby,不客气。我也找到了一段时间,甚至问了一个问题,他们提供了帮助。
这个选项好像不存在了? i.imgur.com/cNFUoxB.png(刚刚在 Android Studio 3.5.3 中截取的屏幕截图)
@Venryx,这很奇怪。我有 3.6.3,这个菜单仍然存在 (imgur.com/a/F8FCpvk)。无论如何,最好使用工具栏中的按钮。
这显然是一些 AndroidStudio/Gradle 文件过时的问题。删除它们并重新导入项目后,该选项再次出现。
A
Amrit Pal Singh

https://i.stack.imgur.com/z9iIn.jpg


Mac OS X 上的前两个步骤是“Android Studio->Preferences”
+1 问题的最佳答案
最佳答案,无需从 android studio 的类似图标中查找 Sync Project 图标。只需按 Shift+5 即可完成。
C
CommonsWare

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


U
Umair
gradle --recompile-scripts

似乎在不构建任何东西的情况下进行同步。您可以通过以下方式启用自动构建

gradle --recompile-scripts --continuous

请参阅文档以获取更多信息:

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


gradle 5.1.1 没有选项 --recompile-scripts
M
Marcel Bro

快捷方式(Ubuntu、Windows):

Ctrl + F5

将项目与 Gradle 文件同步。


在 MacOS 上的快捷方式没有定义,应该分配它。如下所述stackoverflow.com/a/29642935/1839096
V
Victor Choy

我认为 ./gradlew tasksAndroid 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 出现。所以我可以在 gradde 脚本中得到相同的结果。

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


嗨维克多,我有一个麻烦可能会证明你错了,这是我得到的,我从我的 gradle.properties 设置了一个 configProductID=11111,从我的 build.gradle,我添加了“resValue”字符串。如果我做了一个干净的构建从 ADT 中,可以生成资源 R.string.ProductID。然后我可以执行 gradlew assembleDebug 来构建。然后我将我的配置名称从“ProductID”更改为“myProductID”,执行“gradlew tasks”也会出错我不能做'gradlew clean',他们都失败了。我还在挣扎。因为“.\gradlew.bat --recompile-scripts”似乎不再存在?
y
yunfei

我有一个麻烦可能证明 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

我收到错误

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'.

几分钟前我收到了同样的错误消息: > Unsupported class file major version 57 对我来说问题是,这个 gradle 不适用于 Linux 上的当前 openJdk13(我使用 Manjaro ......一个 Arch-Like Linux)。所以要解决这个问题,我已经这样做了:我检查了我在我的电脑上安装了哪个 Java 版本,并选择了版本 8: sudo archlinux-java status sudo archlinux-java set java-8-openjdk 也许这有帮助你出去,即使你的系统似乎是windows。所以尝试另一个 SDK 版本。也许它也解决了你的问题。
嗨@suther,非常感谢您的回复,我已经找到了根本原因并已修复,我认为不是因为 JAVA 版本。但正如我所描述的“gradlew clean”不等于“ADT clean”。我的解决方法是简单地执行“gradlew :app:dependencies”,这将从 gradle 配置文件生成资源 ID。
q
qtmfld

任何人都想使用命令行将项目与 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


这很好,但是如何提供适当的替代方案。
还没找到,可惜
j
jeffski13

从终端:

gradle prepareKotlinBuildScriptModel

注意:您可以通过检查“构建”选项卡来查看 android studio 正在做什么。里面会有不同的窗户。一个应该是“同步”