메모리



고난의 연속.. Eclipse에서 Android Studio로 넘어오려고 애쓰는데 스트레스만 받고 있었다.

이클립스에 있던 프로젝트를 import 해도 계속 에러에러에러... 

결국 그냥 안드로이드 스튜디오에서 새 프로젝트만들고 거기다 붙여넣어 보는 식으로 어찌어찌 해결하다가 갑자기 왠 아웃오브메모리???


대략 이런 에러가 발생


Error:UNEXPECTED TOP-LEVEL ERROR:


Error:java.lang.OutOfMemoryError: GC overhead limit exceeded


:app:transformClassesWithDexForDebug FAILED


Error:Execution failed for task ':app:transformClassesWithDexForDebug'.


> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_05\bin\java.exe'' finished with non-zero exit value 3


버틸 수가 없었다. 내 한계에 부딪히는듯 했다.

찾아보니 build.gradle 파일에서 defaultConfig 에 multiDexEnabled true를 추가해주래서 했는데 해결이 되지 않았고

질문 게시판에 올려보았는다 친철한 분께서 다음과 같은 제안을 해주셨다.

build.gradle 파일에 android 내부에 다음 코드를 넣어보세요


dexOptions {

  jumboMode true

  javaMaxHeapSize "4g"



바로 적용해보았더니 오오오오 아웃오브메모리 에러가 사라졌다.

감동적인 순간이었다. 앱이 실행이 되다니..

아래와 같이 적용했다.


 



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
apply plugin: 'com.android.application'
 
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
 
    defaultConfig {
        applicationId "패키지네임"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
//dexOptions 추가
    dexOptions {
        jumboMode true
        javaMaxHeapSize "4g"
    }
}
cs




물론 이게 100% 해결책이 아닐 수 있다. 언제나 그랬듯이 남의 해결책이 나의 해결책이 되진 않기 때문에..


여기까지 오기에 많은 에러가 있었는데 그 에러들이 어떻게 해결되었는지는 모르고 어찌어찌 넘어왔다.

 

그 에러들 해결방법도 다시 찾아봐야겠다.





+ Recent posts