我正在调试Android Studio中的Gradle问题,并看到“运行Gradle同步”的引用,但我不确定如何运行这个命令。

我如何运行“Gradle同步”从Android工作室或Mac终端?


当前回答

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

./gradlew --recompile-scripts

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


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

。/ gradlew构建

它会同步并构建你的应用,比Gradle同步花费的时间要长

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

其他回答

我认为./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/../ jacocoagulation .jar看起来很自然。 我不知道为什么,可能是jacoco插件有bug。单元我发现运行.gradlew任务使罐子显示以及。所以我可以在gradde脚本中得到相同的结果。

此外,gradle—recompile-scripts也不能解决这个问题。

快捷方式(Ubuntu, Windows):

Ctrl + F5

将项目与Gradle文件同步。

我有一个麻烦可以证明gradlew干净不等于ADT建造干净。现在我正在努力把它修好。

以下是我得到的: 我设置了一个configProductID=11111从我的gradle。属性,从我的构建。我补充道

resValue "string", "ProductID", configProductID

如果我从ADT进行构建清理,可以生成资源R.string.ProductID。然后我就可以成功地做咆哮命令了。

gradlew assembleDebug

但是,当我试图设置构建服务器,我不想从ADT IDE的帮助,所以我需要避免使用ADT构建清洁。我的问题来了。 现在我把我的资源名称从“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 prepareKotlinBuildScriptModel

注意:你可以通过查看“Build”选项卡看到android studio正在做什么。里面会有不同的窗口。一个应该是“同步”

在Android Studio 3.3中,它在这里:

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

该命令被移动到文件>同步项目与Gradle文件。