243

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
  • 46,408
  • 55
  • 231
  • 407

11 Answers11

387

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
  • 4,546
  • 3
  • 40
  • 69
Cai
  • 5,063
  • 3
  • 18
  • 23
62

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
  • 956
  • 7
  • 16
Hugo Gresse
  • 17,195
  • 9
  • 77
  • 119
  • 2
    Yes but build does more right? What is the difference between sync and build? – JohnyTex Apr 03 '19 at 12:00
  • build is a very generic task. it's like using a sledgehammer to crack a nut. On Android projects, running the "build" task could take forever! – cesards Jul 20 '19 at 17:13
  • 13
    I use com.android.tools.build:gradle:3.5.1,and it has no option --recompile-scripts – geosmart Nov 27 '19 at 05:50
  • 2
    since gradle 5.0, --recompile-scripts has become an unknow command-line option, – Francis Bacon Jul 10 '20 at 06:51
  • 1
    I don't want to `build`, I only want to `sync`, I don't understand why Google would deprecate and remove `--recompile-scripts` without introducing an alternative ... – Martin Braun Jun 03 '23 at 16:31
43

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
  • 26,736
  • 15
  • 188
  • 224
  • 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
25

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,116
  • 7
  • 40
  • 50
14

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

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
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,366
  • 15
  • 42
  • 50
oc1d
  • 233
  • 1
  • 3
  • 9
1

Shortcut (Ubuntu, Windows):

Ctrl + F5

Will sync the project with Gradle files.

Marcel Bro
  • 4,907
  • 4
  • 43
  • 70
Andrew
  • 36,676
  • 11
  • 141
  • 113
  • 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
  • 4,006
  • 28
  • 35
  • 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
1

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
  • 581
  • 5
  • 6
  • It does something, like downloading the gradle version, but when I open the project in Android Studio afterwards, it still needs to sync. – Martin Braun Jun 03 '23 at 16:26
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
  • 526
  • 2
  • 6
  • 20
  • 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,916
  • 2
  • 21
  • 36
Francis Bacon
  • 4,080
  • 1
  • 37
  • 48