207

I'm debugging Gradle issues in Android Studio and see references to "Run gradle sync", but I'm not sure how to run this command.

How do I run "Gradle sync" from Android studio or Mac terminal?

Alex Stone
  • 44,280
  • 53
  • 219
  • 394

11 Answers11

334

Android studio should have this button in the toolbar marked "Sync project with Gradle Files"

EDIT: I don't know when it was changed but it now looks like this:

enter image description here

EDIT: This is what it looks like on 3.3.1 enter image description here
OR by going to File -> Sync Project with Gradle Files from the menubar.

zwcloud
  • 3,899
  • 3
  • 29
  • 59
Cai
  • 4,503
  • 3
  • 17
  • 23
60

WARNING: --recompile-scripts command has been deprecated since gradle's version 5.0. To check your gradle version, run gradle -v.

./gradlew --recompile-scripts

it will do a sync without building anything.


Alternatively, with command line in your root project

./gradlew build

It will sync and build your app, and take longer than just a Gradle sync

To see all available gradle task, use ./gradlew tasks

Denialos
  • 937
  • 6
  • 16
Hugo Gresse
  • 16,027
  • 8
  • 76
  • 110
37

In Android Studio 3.3 it is here:

enter image description here

According to the answer https://stackoverflow.com/a/49576954/2914140 in Android Studio 3.1 it is here:

enter image description here

This command is moved to File > Sync Project with Gradle Files.

enter image description here

CoolMind
  • 22,602
  • 12
  • 167
  • 196
  • 6
    ROFL! I have been looking for 2 days for this button! Thanks! – swooby Apr 10 '18 at 19:32
  • 1
    @swooby, you are welcome. I also was finding it for some time, even asked a question, and they helped. – CoolMind Apr 11 '18 at 08:24
  • This option appears to no longer exist? https://i.imgur.com/cNFUoxB.png (screenshot just taken, in Android Studio 3.5.3) – Venryx May 22 '20 at 09:21
  • @Venryx, it is strange. I have 3.6.3 and this menu still exists (https://imgur.com/a/F8FCpvk). Anyway, it is better to use a button in the Toolbar. – CoolMind May 22 '20 at 09:38
  • It was apparently a problem with some AndroidStudio/Gradle files being outdated. After deleting them and reimporting the project, the option showed up again. – Venryx May 22 '20 at 09:41
  • @Venryx, thanks for the explanation! Sometimes custom buttons disappear from the Toolbar (and then appear again). – CoolMind May 22 '20 at 09:44
24

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 shortcutChoose any convenient key as your gradle sync shortcut which doesnot conflict with any other shortcut key, (I have choosen Shift + 5 as my gradle sync key), so next when you want to run gradle sync manually just press this keyboard shortcut key.

Amrit Pal Singh
  • 7,000
  • 7
  • 35
  • 49
14

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

CommonsWare
  • 954,112
  • 185
  • 2,315
  • 2,367
7
gradle --recompile-scripts

seems to do a sync without building anything. you can enable automatic building by

gradle --recompile-scripts --continuous

Please refer the docs for more info:

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

Umair
  • 6,078
  • 15
  • 42
  • 48
oc1d
  • 217
  • 1
  • 3
  • 9
2

Shortcut (Ubuntu, Windows):

Ctrl + F5

Will sync the project with Gradle files.

Marcel Bro
  • 4,567
  • 4
  • 39
  • 65
Andrew
  • 34,285
  • 10
  • 136
  • 109
  • 1
    on MacOS shortcut is not defined, one should assign it. Described below http://stackoverflow.com/a/29642935/1839096 – Silwester Jul 18 '16 at 10:07
1

I think ./gradlew tasks is same with Android studio sync. Why? I will explain it.

I meet a problem when I test jacoco coverage report. When I run ./gradlew clean :Test:testDebugUnitTest in command line directly , error appear.

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

However, if I click android studio sync firstly , it runs OK. Because the build/../jacocoagent.jar appear naturally. I dont know why, maybe there is bug in jacoco plugin. Unit I find running .gradlew tasks makes the jar appear as well. So I can get the same result in gralde script.

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

Victor Choy
  • 3,730
  • 23
  • 32
  • Hi Victor, I have a trouble may proof you wrong, Here is what I got, I set a configProductID=11111 from my gradle.properties, from my build.gradle, I add "resValue "string". If I do a build clean from ADT, the resource R.string.ProductID can be generated. Then I can do gradlew assembleDebug to build. Then I change my config name from "ProductID" to "myProductID", I will get error to do 'gradlew tasks', also I can't do 'gradlew clean', all of them just fail. I am still struggling. As ".\gradlew.bat --recompile-scripts " seems no longer exists? – yunfei Jan 09 '20 at 08:23
0

I have a trouble may proof gradlew clean is not equal to ADT build clean. And Now I am struggling to get it fixed.

Here is what I got: I set a configProductID=11111 from my gradle.properties, from my build.gradle, I add

resValue "string", "ProductID", configProductID

If I do a build clean from ADT, the resource R.string.ProductID can be generated. Then I can do bellow command successfully.

gradlew assembleDebug

But, as I am trying to setup build server, I don't want help from ADT IDE, so I need to avoid using ADT build clean. Here comes my problem. Now I change my resource name from "ProductID" to "myProductID", I do:

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'.
yunfei
  • 432
  • 1
  • 6
  • 17
  • 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 Jan 10 '20 at 10:18
  • Hi @suther, many thanks for your reply, I have find the root cause and fixed, I don't think it is because of JAVA version. But as I described "gradlew clean" is not equal to "ADT clean". My fix was simply do "gradlew :app:dependencies", this will generate resource IDs from gradle configuration files. – yunfei Jan 12 '20 at 13:09
0

Anyone wants to use command line to sync projects with gradle files, please note:

Since Gradle 5.0,

The --recompile-scripts command-line option has been removed.

qtmfld
  • 2,746
  • 2
  • 19
  • 36
Francis Bacon
  • 2,884
  • 1
  • 28
  • 40
0

From terminal:

gradle prepareKotlinBuildScriptModel

NOTE: you can see what android studio is doing by inspecting the "Build" tab. There will be difference windows inside there. One should be "Sync"

jeffski13
  • 491
  • 5
  • 6