我正在 Android Studio 中调试 Gradle 问题,并看到对“运行 gradle sync”的引用,但我不确定如何运行此命令。
如何从 Android Studio 或 Mac 终端运行“Gradle 同步”?
https://i.stack.imgur.com/d15o5.png
编辑:我不知道它是什么时候改变的,但现在看起来像这样:
https://i.stack.imgur.com/QOC20.png
https://i.stack.imgur.com/8pPCL.png
警告:自 gradle
的 5.0 版起,--recompile-scripts
命令已被弃用。要检查您的 gradle
版本,请运行 gradle -v
。
./gradlew --recompile-scripts
它会在不构建任何东西的情况下进行同步。
或者,在根项目中使用命令行
./gradlew build
它将同步和构建您的应用程序,并且比 Gradle 同步需要更长的时间
要查看所有可用的 gradle 任务,请使用 ./gradlew tasks
在 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
https://i.stack.imgur.com/z9iIn.jpg
我认为它指的是 Android Studio 主菜单中的工具 > Android > “使用 Gradle 文件同步项目”。
gradle --recompile-scripts
似乎在不构建任何东西的情况下进行同步。您可以通过以下方式启用自动构建
gradle --recompile-scripts --continuous
请参阅文档以获取更多信息:
https://docs.gradle.org/current/userguide/gradle_command_line.html
快捷方式(Ubuntu、Windows):
Ctrl + F5
将项目与 Gradle 文件同步。
我认为 ./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 出现。所以我可以在 gradde 脚本中得到相同的结果。
此外,gradle --recompile-scripts
不适用于该问题。
我有一个麻烦可能证明 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'.
任何人都想使用命令行将项目与 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
从终端:
gradle prepareKotlinBuildScriptModel
注意:您可以通过检查“构建”选项卡来查看 android studio 正在做什么。里面会有不同的窗户。一个应该是“同步”