Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is gradle sync in Android Studio?

Tags:

What is it? And what does it do? I'm working on an enterprise that has a proxy, and it fails trying to connect to somewhere. Why does it needs internet connection? What ports does it use?

EDIT: The answer of the user Caleb was perfect. I would like to add that the proxy should be configured too in the gradle.properties. Something like this:

systemProp.http.proxyHost=*proxyAddress*

systemProp.http.proxyPort=*portNumber*

systemProp.https.proxyHost=*proxyAddress*

systemProp.https.proxyPort=*portNumber*

like image 672
Bruno Fernandez Ellerbach Avatar asked Apr 26 '17 14:04

Bruno Fernandez Ellerbach


People also ask

What is Gradle sync?

Gradle sync is a gradle task that looks through all of your dependencies listed in your build. gradle files and tries to download the specified version.

Why does Gradle sync every time?

Yes,Whenever you open a project in android studio,it will sync the gradle files everytime,And when you edit or implement any new library in . gradle file,that time also gradle build sync. In your project gradle build is keep failing,this happens when your code have some error or its possible that error is in .

What is Gradle sync issues in Android Studio?

Gradle Sync requires a stable internet connection for downloading various versions required for the project online. Hence it is always advised to check your internet connection before syncing your project in Android Studio.

How do I sync a Gradle file?

Open your gradle. properties file in Android Studio. Restart Android Studio for your changes to take effect. Click Sync Project with Gradle Files to sync your project.


2 Answers

What is it? And what does it do?

Gradle sync is a gradle task that looks through all of your dependencies listed in your build.gradle files and tries to download the specified version.

dependencies {
     compile '...your dependency...'
}

Why does it needs internet connection? What ports does it use?

It requires an internet connection because it is usually downloading these dependencies from a remote location. You can define what ports it uses by changing your gradle.properties. (see below)

I'm working on an enterprise that has a proxy, and it fails trying to connect to somewhere.

Your work proxy may be blocking this and you'll need to add your proxy configuration to solve your issues.

Go into:

File-->Settings--> Android Studio Preferences --> Appearance & Behavior / System Settings/ HTTP Proxy

and update your proxy configuration url to your work proxy. (automatic or manual depending on your setup).

NOTE: If you are using the command line to run your gradle build, you will probably need to update the proxy settings via your gradle.properties file.

Global Properties File Location : ~/.gradle/gradle.properties (or use your local project file if you have one)

Add proxy settings to this file:

HTTPS

systemProp.https.proxyHost=<proxy host>
systemProp.https.proxyPort=<your proxy port>
systemProp.https.nonProxyHosts=<your non-proxy host>
systemProp.https.proxyPassword=<your pw>

HTTP

systemProp.http.proxyHost=<proxy host>
systemProp.http.proxyPort=<your proxy port>
systemProp.http.nonProxyHosts=<your non-proxy host>
systemProp.http.proxyPassword=<your pw>

If you absolutely cannot get an internet connection via gradle you'll need to download the dependencies another way and reference them locally on your computer or local network.

(See this guide for using local jars)

like image 131
Caleb Avatar answered Oct 05 '22 22:10

Caleb


What is it?

I believe it's an IntelliJ/Android Studio term for these Gradle tasks:

  1. dependencies
  2. build

Gradle itself doesn't have "sync" task.

I use the term "believe" since there's no explanation from Gradle/IntelliJ/Android Studio official documentation 😂

And what does it do? Sync is a phase where the IDE preparing everything, including downloading your dependencies.

When the sync is finished, the user can start coding.

When the sync fails, the IDE is not working properly. The user need to spend time to fix the configuration first.

After Gradle finished syncing, the IDE start another task, like indexing.

Gradle: Build...
Gradle: Configure projects...
Indexing...

I'm working on an enterprise that has a proxy, and it fails trying to connect to somewhere. Why does it needs internet connection? What ports does it use?

Answered above.

Bonus: How to speed up sync

Before opening the project using Android Studio/IntelliJ, open the project using terminal and run the gradle tasks.

cd myproject
./gradlew app:dependencies module:dependencies
./gradlew build

After that, open the project. The sync should be much faster now (since you've downloaded the dependencies in terminal).

like image 27
aldok Avatar answered Oct 05 '22 23:10

aldok