Reputation: 2278
I've been working with Android Studio (my current version 1.5) for 2 years. Everything was OK, but when I downloaded Canary (2.1 p5), everything went wrong. Every time I want to create a new project or open a project or sync or import a new lib or dependency, gradle is taking too long to build — nearly 20 min.
I did not do anything, I just downloaded the Canary version and ran it.
Symptoms :
Note: When I disconnect my Internet, gradle will finish as fast as possible
I tried to fix this by these ways:
I've created a new file (file name is gradle.properties
) in C:\Users\username\.gradle
then wrote these lines into it
org.gradle.parallel=true
org.gradle.daemon=true
I removed that version then installed my old version which worked OK but the problem was still there :(
Disable / Enable firewall
Disable / Enable AntiVirus (Nod32)
Reinstall Windows OS (8.1)
I've downloaded all versions (1.0.0, ..., 1.5.1, 2.0.0, 2.1)
I've used a proxy
System info:
build.gradle(Project:appName)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
gradle.build(Module:app)
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.test.myapplication"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.3.0'
}
Gradle report after building
Dependencies Duration
All dependencies 14m3.43s
:app:_releaseCompile 3m30.96s
:app:_debugCompile 3m30.73s
:app:_debugApk 3m30.69s
:app:_releaseApk 3m30.62s
:classpath 0.428s
:app:_debugAndroidTestCompile 0.001s
:app:_debugAndroidTestApk 0s
:app:_debugUnitTestApk 0s
:app:_debugUnitTestCompile 0s
:app:_releaseUnitTestApk 0s
:app:_releaseUnitTestCompile 0s
:app:releaseWearApp 0s
:app:wearApp 0s
After installing android studio 2.0 stable version
Upvotes: 65
Views: 63668
Reputation: 121
The crazy way is using WARP 1.1.1.1. I already wasted my half day waiting for 10 MB downloaded :(.
Upvotes: 0
Reputation: 819
You could optimize the gradle build process ...
Try to put the gradle on offline mode forcing to build without any connection to external repositories, like this:
This helped me a lot, because in my work, all connections are behind a proxy and it increase the build time.
If this is not enough for you, take a time testing the options on the Gradle > Experimental ... Some options may improve you performance:
Note: In newer version of Android studio, View->Tool Windows->Gradle->Toggle button of online/offline
Upvotes: 6
Reputation: 1027
stop the gradle download and click file -> "Sync project with Gradle Files"
Upvotes: 0
Reputation: 1681
Please check this story. It might not related to gradle but it can speed up your build without too much changes:
https://android.jlelse.eu/is-your-android-studio-always-slow-heres-how-to-speed-up-immediately-326ef9238024
Upvotes: 1
Reputation: 696
For those who use repositories that require authentication, this issue may be solved by configuring gradle to use only a single auth scheme:
repositories {
maven {
credentials {
username INTERNAL_REPO_USERNAME
password INTERNAL_REPO_PASSWORD
}
// here comes the important part
authentication {
basic(BasicAuthentication)
}
url INTERNAL_REPO_URL
}
}
It turned out that upon authenticating against repositories, gradle attempts authentication using all kind of schemes. The above config makes gradle only use basic auth. Here is the full list of available schemes.
Upvotes: 1
Reputation: 2647
Like Ismail Iqbal's answer said, put gradle under offline mode works for me.
If you're using android studio, follow Fabio Filho's answer
If you're using command line like me, you can try
gradlew assembleReleaseStaging(your task name) --offline
Upvotes: 2
Reputation: 2248
In addition to @Mehdi Jahed Manesh answer above.
Increase the amount of memory allocated to the Gradle Daemon VM by 1 Gb, to a minimum of 2 Gb, using the org.gradle.jvmargs
property like this:
org.gradle.jvmargs=-Xmx2048m
Upvotes: 2
Reputation: 2580
Once the initial build has completed try enabling offline Mode from the gradle settings. So that every consecutive builds will not start resolving dependencies, instead it gets from the cache. If you add a new dependency it will prompt you to disable offline mode and rebuild it.
Upvotes: 3
Reputation: 75
In my case, I solved it by installing a new version of the Java JDK. After installing the new JDK, open AS, go to File→Project Structure→SDK Location, and change JDK location to that of the new version of the Java JDK. Then you will be asked for firewall permission; check Public and apply. Let it resolve gradle.
Upvotes: 0
Reputation: 6614
I have seen another issue. The solution might help someone
Recently i have set http_proxy and https_proxy under system environment variables. I had to remove both of them and then set the proxy in studio settings.
Upvotes: -1
Reputation: 2278
After 2 days searching , I got the solution , so I would like to share with all people who may have the same problem. The problem is gradle
can not connect to center repository in some country. When you create a new project or import , your center repository is jcenter()
by default and whenever you want to build or sync or add new external dependency, gradle
is going to connect to https://bintray.com/ but it can not and the building process is going to wait till connect to jcenter()
, so this process might take long time ( +30 min ) , even you can not add new dependency .
Solution :
classpath 'com.android.tools.build:gradle:2.0.0'
)So you can easily add new dependency and sync project under 3sec !
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Have Fun
Upvotes: 87
Reputation: 2258
change classpath 'com.android.tools.build:gradle:1.5.0'
to
classpath 'com.android.tools.build:gradle:2.0.0'
and
change buildToolsVersion "23.0.3"
to
buildToolsVersion "23.0.2"
and use android studio 2.0 stable version. let me know you want more details or this solution did not work to you.
Upvotes: -3