Android Studio gradle을 빌드하는 데 시간이 너무 오래 걸림


225

Android Studio 프로젝트는 더 빨리 빌드하는 데 사용되었지만 이제는 빌드하는 데 시간이 오래 걸립니다. 지연을 일으킬 수있는 아이디어가 있습니까? https://stackoverflow.com/a/27171878/391401 을 시도 했지만 효과가 없습니다. 빌드를 방해 할 수있는 안티 바이러스가 실행 중이 아닙니다. 내 앱은 크기가 크지 않고 (약 5MB ) 몇 초 내에 빌드되었지만 무엇이 변경되었는지 확실하지 않았습니다.

10:03:51 Gradle build finished in 4 min 0 sec  
10:04:03 Session 'app': running  
10:10:11 Gradle build finished in 3 min 29 sec  
10:10:12 Session 'app': running  
10:20:24 Gradle build finished in 3 min 42 sec  
10:28:18 Gradle build finished in 3 min 40 sec  
10:28:19 Session 'app': running  
10:31:14 Gradle build finished in 2 min 56 sec   
10:31:14 Session 'app': running  
10:38:37 Gradle build finished in 3 min 30 sec  
10:42:17 Gradle build finished in 3 min 40 sec  
10:45:18 Gradle build finished in 3 min 1 sec  
10:48:49 Gradle build finished in 3 min 30 sec  
10:53:05 Gradle build finished in 3 min 22 sec  
10:57:10 Gradle build finished in 3 min 19 sec  
10:57:11 Session 'app': running  

1
당신은 당신의 안드로이드 전화 또는 응용 프로그램을 실행하기 위해 어떤 에뮬레이터를 사용합니까?
Ram Mansawala

장치에서 실행
Harish

3
왜 구글이 일식에서 안드로이드 스튜디오로 전환했는지 .... 안드로이드 스튜디오 짜증
kapil

38
Android 스튜디오가 새로 출시되었을 때 StackOverflow의 많은 사람들이 '베타 버전'이기 때문에 이에 대한 불만을 기각했습니다. 그러나 지금은 베타 버전 이었기 때문에 몇 년이 지났으며 여전히 느리고 8 코어, 16GB 램 및 SSD 디스크에 있습니다. 이 머신에 설치된 이전 Eclipse는 깜박임만큼 빠릅니다.
Andrew S

답변:


453

Android Studio에서 파일-> 설정-> 빌드, 실행, 배포-> 빌드 도구-> Gradle로 이동하십시오.

(Mac의 경우) Android Studio- > 환경 설정 ...-> 빌드, 실행, 배포-> 빌드 도구-> Gradle

'전 세계 Gradle 설정'에서 '오프라인 작업'을 확인하십시오.

gradle 빌드 시간이 90 % 단축됩니다.

빌드 시간을 줄이려면 이것을 확인하십시오

gradle에 새로운 종속성을 추가 한 경우 오프라인 작업 을 선택 취소해야합니다. 그렇지 않으면 gradle이 종속성을 해결할 수 없습니다. 완전한 해결 후 더 빠른 빌드를 위해 오프라인 작업 을 확인할 수 있습니다


11
잘 했어. 12 분에서 5 초까지
Ramesh

18
이 구성은 build.gradle에 추가 할 때 새 라이브러리 가져 오기를 중지하지 않습니까?
Dany Y

48
새 라이브러리를 추가 할 때 프로젝트를 실행할 수 있도록 gradle 빌드에 의해 통지되는 한 번만 온라인으로 만들어야합니다. @DanyY
Biswajit Karmakar

15
문제가 항상 프로세서 속도가 아닌 인터넷 속도라는 것을 의미합니까?

1
우와! 15 분에서 1 분 갔다 : O
추기경 - 분석 재개 모니카

150

Google Play 서비스를 사용하는 경우 Gradle 빌드 스크립트에서이를 사용하지 않아야합니다.

compile 'com.google.android.gms:play-services:8.3.0'

앱에서 실제로 사용중인 Google API 만 사용하십시오. 사용중인 모든 것이 Google지도 인 경우 다음을 사용합니다.

com.google.android.gms:play-services-maps:8.3.0

이 작업을 수행 할 때 컴파일 시간이 2 분 이상에서 약 25 초로 단축되었습니다. 선택적으로 컴파일 할 수있는 Google API 목록은 다음을 참조하십시오.

https://developers.google.com/android/guides/setup


12
100 개 이상의 공감이 필요합니다. 다른 모든 소스는 추가 org.gradle.parallel=true및 명령 줄 관련을 제안 하지만 실제로 진행되고있는 것에 대한 간단하고 직접적인 이해를 제공하는 것은 없습니다. 당신의 조언을 사용하여 빌드 시간은 1 분 5 초에서 3.427 초로 단축되었습니다. 대박!!
Sauron

고마워요, 이것도 저의 주요 문제였습니다. 이제 모든 것이 잘 작동합니다.
alnaji

1
잘 작동합니다. 이 링크를 사용하여 플레이 서비스 라이브러리 이름 ( developers.google.com/android/guides/…
PC)

당신은 진드기가 가치가 ... 내 문제를 해결했습니다. 문제는 구글 플레이 서비스에 있습니다 ... 감사합니다 :)
Karue Benson Karue

이것은 긴 빌드 문제에 도움이 될뿐만 아니라 디버깅 할 때 Proguard를 사용하지 않고 Android 장치에 직접 배포 할 수 있습니다 (이전에는 65K 메서드 제한에 관한 오류가 발생했습니다). 감사!
magritte

52

gradle을 만드는 가장 쉽고 쉬운 방법을 찾았습니다.

앱으로 이동 >> gradle.properties를 열고 몇 줄을 변경하십시오 . [제거 번호 ]

그렇지 않으면 아래 스 니펫을 붙여 넣을 수도 있습니다.

    # Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx2048m -XX:MaxPermSize=512m
 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 org.gradle.parallel=true

그것은 거의 2-3 분이 걸렸지 만 지금은 5-6 초 밖에 걸리지 않았습니다.

위 시나리오에서 내 맥 컴퓨터에는 8GB 램이 있으므로 gradle에 4GB를 할당했습니다.


이로 인해 빌드 시간이 30 분 이상에서 24 분으로 단축되었습니다. 더 줄일 방법이 있습니까?
Programming Pirate

34

이유를 찾았습니다 !! Android Studio에 프록시 서버 설정이 있고 서버에 연결할 수없는 경우 빌드하는 데 시간이 오래 걸립니다. 프록시 서버에 도달하여 시간 초과를 기다리는 중일 수 있습니다. 프록시 서버 설정을 제거하면 정상적으로 작동합니다.

프록시 제거 : File > Settings > Appearance & Behavior > System settings > HTTP Proxy


3
프록시 서버를 제거하는 방법?
Joolah

2
Windows 파일> 설정> 모양 및 동작> 시스템 설정> HTTP 프록시
Harish

2
내 문제는 프록시에도 있었지만 gradle 속성에 HTTPS 프록시도 추가해야했습니다. HTTP 프록시로는 충분하지 않습니다. systemProp.http.proxyHost = xxx.xxx.xxx.xxx systemProp.http.proxyPort = 8080 systemProp.https.proxyHost = xxx.xxx.xxx.xxx systemProp.https.proxyPort = 8080
user3098756

26
AS는 완전한 농담과 BS입니다. 나는이 말도 안되는 피곤합니다.
The_Martian

9
나는 동의한다!!! Eclipse에서 큰 프로젝트를 마이그레이션하기 위해 부당한 고통을 겪고 있습니다. 이제 AS로 빌드하면 결코 끝나지 않습니다. 나는 @The_Martian
Josh

20

단계를 수행하면 10 배 빨라지고 빌드 시간이 90 % 단축됩니다.

먼저 다음 디렉토리에 gradle.properties라는 파일을 작성하십시오.

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

이 줄을 파일에 추가하십시오.

org.gradle.daemon=true

org.gradle.parallel=true

4
studio 프로젝트 아래에있는 gradle.properties에서 직접 설정할 수 있습니다.
Biswajit Karmakar

3
예,이 옵션을 활성화하십시오. org.gradle.jvmargs = -Xmx2048m -XX : MaxPermSize = 512m -XX : + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370

2
MaxPermSize = 1024m 설정
Biswajit Karmakar

이러한 속성이 미리 정의되지 않은 이유는 무엇입니까? 단점이 있습니까?
oli

이 옵션은 분리 된 프로젝트에만 사용해야합니다. 자세한 내용은 gradle.org/docs/current/userguide/…를
javad

17

Java 8 기능을 사용하면 치명적인 빌드 속도 저하

Gradle

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

위의 줄을 삭제하면 몇 초 만에 작성됩니다.

Jack으로 컴파일하는 데 시간이 오래 걸림 문제가 있습니다

프로젝트 관리자의 답변

우리는 지금 빌드 시간이 Jack의 문제라는 것을 알고 있습니다. 2.4 Gradle 플러그인에서 점진적 빌드를 크게 개선했습니다.

현재 내가 찾을 수있는 최신 Gradle 버전은 2.3.0-beta4입니다.


4
그래, 난 동의. 안드로이드 스튜디오에서 Java 8을 활성화하려면 Jack을 사용해야 하며이 작업을 수행하면 1-2 분 빌드에서 16 분까지 달로 날아갑니다 ... 지금은 사용할 수 없습니다. 언제나 훌륭한 작품 Google
Karol Żygłowicz


7

@AndroidDev 솔루션이 나를 위해 일했습니다. 나는 전체 lib를 gradle에 포함시켰다.

compile 'com.google.android.gms:play-services:8.4.0'

문제를 해결하기 위해 변경했습니다. 4 분 ~ 1 분

compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'

Thnx


4

인터넷 연결을 확인하십시오 . 인터넷 속도가 매우 느린 경우 gradle 빌드도 빌드하는 데 시간이 오래 걸립니다. 다른 하나의 좋은 속도 연결로 wifi 인터넷 연결을 변경하여 확인합니다. 이제 빌드 시간은 정상입니다. 다른 솔루션으로 이동하기 전에 시도하십시오. 누군가 다시 설치하거나 설정을 변경하기로 잘못 결정했습니다. 도움이 되길 바랍니다. 감사합니다.


방화벽에서 Android Studio를 허용해야합니다. 갑자기 방화벽 창이 팝업되어 허용하라는 메시지가 표시되면 새로 설치할 때 gradle을 거의 15 분 동안 기다리고있었습니다. 그래도 더
빨 랐을

2

1) gradle 파일에 새로운 라이브러리 종속성을 추가 한 후 빌드 시간이 크게 증가했습니다. 그 후에 멀티 덱스를 사용해야한다는 것이 밝혀졌습니다. 그리고 멀티 덱스를 올바르게 설정하면 빌드 시간이 2-3 분까지 길어졌습니다. 따라서 더 빠른 빌드 시간을 원하면 멀티 덱스를 사용하지 말고 가능한 한 라이브러리 종속성 수를 줄이십시오.

2) 또한 여기에 제안 된 것처럼 안드로이드 스튜디오에서 "오프라인 작업"을 활성화 할 수 있습니다. 빌드 할 때마다 라이브러리를 다시 가져 오지 않습니다. "오프라인 작업"이 비활성화 된 상태에서 느린 연결 또는 프록시 / vpn 사용으로 인해 빌드 시간이 느려질 수 있습니다.

3) Google 서비스-여기에 언급 된 것처럼 전체 번들을 사용하지 말고 필요한 부분 만 사용하십시오.


1

Android Studio 2.0의 베타 버전에서는 다음과 같은 기능을 출시했습니다. Instant Run . 빌드 시간을 크게 단축시킵니다. 핵심 개념은, Android Studio는 이미 실행중인 앱의 작은 변경 사항 만 푸시한다는 것입니다.

코드에서 변경 한 사항을 핫 스왑, 웜 스왑 및 콜드 스왑의 세 부분으로 분류하여 변경 사항이 빌드에 가하는 부하량을 기준으로 분류합니다. 그 후, 그것은 이미 실행중인 앱에서 코드를 바꾸고 몇 초 동안 변경 사항을 볼 수 있습니다. 그들의 의사를 참조하십시오 를 참조하십시오.

여기 Android Studio 2.0 미리보기를 다운로드 할 수 있습니다.

추신 :이 기능에는 몇 가지 문제가 있습니다. 그들은 문서에 그것을 나열했습니다. 설치하기 전에 확인하십시오.



1

나는 같은 문제에 오랫동안 직면했지만 gradle에서 설정을 조정하여 문제를 해결했습니다.

1 단계 : BuildScript에서 모듈 앱 추가 종속성

buildscript {
 dependencies {
         classpath 'com.android.tools.build:gradle:2.0.0-alpha9'
}
}

2 단계 : dexOption 추가 및 다음 heapSize 제공

  dexOptions {
    incremental = true;
    preDexLibraries = false
    javaMaxHeapSize "4g"
}

3 단계 : 제품 추가

    productFlavors {
    dev {
        minSdkVersion 23
        applicationId = "com.Reading.home"
    }
    prod {
        minSdkVersion 15
        applicationId = "com.Reading.home" // you don't need it, but can be useful

    }
}

빌드 시간이 줄어 듭니다.


0

Windows 8을 사용하는 경우 ...

DroidArc 및 AndroidDev 솔루션은 유용하지만 그다지 중요하지 않습니다. 내 문제는 Windows 8 OS 및 100 % 디스크 사용량과 관련이 있습니다.

특히 Windows Search 서비스가 가장 많이 소비되었습니다. cmd (Admin)> net.exe stop "Windows search"로 비활성화하십시오.

나는이 링크의 지시를 따르고 100 % 디스크 사용을 수정하고 Windows 성능을 향상시키는 실제 4 가지 팁 의 문제를 해결했습니다.

도움이 되었기를 바랍니다.


0

나는 kotlin에서 같은 문제가있었습니다. 오래된 kotlin 런타임을 업데이트하면 해결되었습니다.


0

특히 전화를 통해 적극적으로 디버깅 할 때 이와 같은 문제가있었습니다. 때로는 27 분이 걸렸습니다. 나는 다음과 같은 일을했고 각각의 설명을 주목하십시오. 하나는 당신에게 도움이 될 수 있습니다.

  1. gradle.properties 파일을 변경했습니다 (Android 옵션 아래 또는 프로젝트 폴더 내에 프로젝트 파일보기가있는 경우 Gradle 스크립트 아래). 내 컴퓨터에는 여분의 메모리가 있기 때문에 이것을 추가했습니다. 컴퓨터 사양 및 android studio 최소 요구 사항 (Xmx8000m -XX : MaxPermSize = 5000m)에 따라 끝에 다른 값을 할당 할 수 있습니다.

org.gradle.daemon = true

org.gradle.configureondemand = true

org.gradle.parallel = true

android.enableBuildCache = true

org.gradle.caching = true

org.gradle.jvmargs = -Xmx8000m -XX : MaxPermSize = 5000m -XX : + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

  1. 이것은 내 경우에 내 문제를 완전히 해결하지 못했습니다. 따라서 다른 사람들이 이전에 제안한대로 빌드 프로세스를 오프라인으로 만들었습니다.

파일-> 설정 / 환경 설정-> 빌드, 실행, 배포-> Gradle

전역 Gradle 설정 (하단)

확인란을 오프라인 작업으로 표시합니다.

  1. 이로 인해 시간이 크게 줄었지만 불규칙했습니다. 때때로 더 오래 걸렸습니다. 따라서 Instant Run에서 몇 가지 사항을 변경했습니다.

파일-> 설정 / 환경 설정-> 빌드, 실행, 배포-> 즉시 실행

확인 : 핫 스왑 코드로 인스턴트 실행 활성화 ...

확인 : 코드 변경시 활동 재시작 ...

  1. 위의 움직임도 불규칙적이어서 문제가 전화 / 컴퓨터에서 직접 실행되는 프로세스 / 메모리인지 여부를 확인하려고했습니다. 여기에서 휴대 전화 및 저장소 (98 % 사용률-70 % 감소)와 작업 관리자 (Windows)에서 약간의 메모리 공간을 확보하여 Android Studio 및 Java.exe의 우선 순위를 높음으로 높였습니다. 이 단계를 신중하게 수행하십시오. 컴퓨터의 메모리에 따라 다릅니다.

  2. 결국이 시간에 내 휴대 전화에서 적극적으로 디버깅하는 동안 내 빌드 시간은 1 ~ 2 분으로 줄어 들었지만 때로는 급증했습니다. 나는 22-27 분이 12 초라는 동일한 프로젝트에서 가장 빨리 초로 가져 가면서 나를 놀라게 하는 해킹을하기로 결정했습니다 ! :

디버깅을 위해 전화를 연결 한 다음 실행을 클릭하십시오.

시작 후 전화를 분리하십시오-빌드가 더 빨리 계속되고 끝에 다음을 나타내는 오류가 발생합니다 : 세션 '앱': APK 설치 오류

전화를 다시 연결하고 다시 실행을 클릭하십시오 ...

대안 적으로

내가 디버깅하는 스크립트 / 함수 / 방법이 JAVA-android가 아닌 순수 JAVA 인 경우, 예를 들어 JSONArrays / JSONObjects로 API를 테스트하면 Netbeans에서 Java 파일 / 메소드를 테스트하여 단일 파일을 컴파일하고 출력을 더 빨리 표시 할 수 있습니다. 내 Android Studio 파일에서 필요한 변경 사항 이것은 또한 많은 시간을 절약 해줍니다.

편집하다

로컬 저장소에 새로운 안드로이드 프로젝트를 만들고 이전 프로젝트의 모든 파일을 java, res, manifest, gradle 앱 및 gradle 프로젝트 (최신 gradle 클래스 경로 종속성)로 복사했습니다. 이제 15 초 이내에 휴대 전화를 만들 수 있습니다.


0

build.gradle에서 디버그에 minifyEnabled가있는 경우 제거하십시오. 나는 내 프로젝트에 그것을 가지고 있었고 빌드하는 데 2-3 분이 걸렸습니다. 빌드 진행 상황을 살펴본 후이 문제를 범인으로 발견 했으므로 아래의 주석 처리 된 행을 삭제하면 문제가 해결되었습니다.

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }//debug{
         //   minifyEnabled true
         //   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}


0

나는 같은 문제가 있었고 심지어 gradle 빌드조차 8 시간 동안 달렸고 걱정했다. 그러나 나중에 나는 build.gradle 에서 컴파일 SDK 버전과 최소 SDK 버전을 변경했습니다. 파일 과 같이 변경했습니다.

더 오래된 :

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 9
    targetSdkVersion 25
}

신규 (업데이트 됨) :

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

 defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 15
    targetSdkVersion 28
 }

-2

내 컴퓨터에서도 비슷한 문제가있었습니다. Windows Defender가 Gradle Building의 일부를 차단하고있었습니다. 나는 그것을 비활성화하고 그 후에 잘 작동했습니다.


-43

컴퓨터를 다시 시작하고 Android Studio를 다시 실행하십시오. Android 대상 코드베이스로 Cordova / Phonegap 프로젝트를 빌드하려고 할 때 나를 위해 일했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.