Program Club

Android Studio Gradle 문제 : OutOfMemoryError : PermGen 공간

proclub 2020. 11. 9. 21:31
반응형

Android Studio Gradle 문제 : OutOfMemoryError : PermGen 공간


Gradle과 Android Studio v0.1.3을 사용하기 위해 Eclipse에서 가져온 이전 프로젝트를 가져 오기 위해 몇 시간 동안 싸운 후 ... 지금 얻은 것은 실제로 명령 줄에서 빌드를 수행 할 수 있다는 것입니다. / Studio 에서 프로젝트 다시 빌드 하면 다음과 같은 결과가 나타납니다.

Gradle: 

FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':EpicMix'.
> Failed to notify project evaluation listener.
   > A problem occurred configuring project ':facebook'.
      > Failed to notify project evaluation listener.
         > java.lang.OutOfMemoryError: PermGen space

그것은 거대한 프로젝트가 아니고, 몇 개의 작은 하위 프로젝트 (페이스 북 포함)가 있기 때문에 그것이 실제로 메모리라고 생각하지 않습니다. 이게 뭔지 모르겠지만 ...


명령 줄에서 gradle을 실행하는 사용자를 위해 gradle.properties 파일을 만들고 프로젝트의 루트에 넣고 다음을 추가합니다.

org.gradle.jvmargs=-XX:MaxPermSize=512m

PermGen 공간의 크기는 File> Settings> Compiler에서 Android Studio 내에서 늘릴 수 있습니다. "추가 컴파일러 프로세스 VM 옵션"이라는 설정을 찾으십시오. 다음 매개 변수를 추가하기 만하면됩니다.

-XX:MaxPermSize=512M

기본값은 92M입니다. 값을 기가 바이트로 지정하려면 G를 사용하십시오.


Mac OS X를 사용하는 경우 파일 내에서 MaxPermSize를 늘릴 수 있습니다.

/Applications/Android Studio.app/bin/idea.vmoptions

최대 PermGen 크기와 같은 JVM 인수를 설정하는 권장 방법은 여기에 제공된 조언을 따르는 것입니다. http://tools.android.com/tech-docs/configuration

Android Studio 2.0 이상

Android Studio 2.0부터 IDE에서 직접 구성 파일에 액세스 할 수있는 옵션이 있습니다.

Help->Edit Custom VM Options메뉴를 사용하십시오 .여기에 이미지 설명 입력

구성 페이지에서 가져온 JVM 인수의 전체 집합은 기본값과 함께 다음과 같습니다.

-Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -XX:+UseCompressedOops

레거시 지침 :

자신의 studio.vmoptions 파일을 만들고 여기에 JVM 설정을 넣어야합니다. 파일 위치는 다음과 같아야합니다.

  • Mac OS ~ / Library / Preferences / AndroidStudio / studio.vmoptions
  • Linux ~ / .AndroidStudio / studio.vmoptions (또는 ~ / .AndroidStudio / studio64.vmoptions)
  • Windows : % USERPROFILE % .AndroidStudio \ studio.exe.vmoptions (또는 % USERPROFILE % .AndroidStudio \ studio64.exe.vmoptions)

AndroidStudio 앱 디렉토리의 파일은 IDE에 대한 새로운 설치 / 업데이트로 덮어 쓰여 지므로 더 이상 편집하지 않아야합니다.


또한 이것은 나를 위해 일했습니다. Linux를 사용하는 경우 환경 변수 GRADLE_OPTS를 "-XX : MaxPermSize = 512m"(또는 원하는 크기)로 설정하십시오.


gradle.properties에 이것을 추가하십시오 .

 org.gradle.jvmargs=-XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=utf-8

gradle.properties파일을 가지고 다음을 추가 할 수 있습니다 .

~/.gradle/gradle.properties다음을 포함하도록을 만들거나 편집합니다.

org.gradle.daemon=false
GRADLE_OPTS="-Xmx2048m -Xms2048m -XX:MaxPermSize=1024m"
org.gradle.jvmargs=-XX:MaxPermSize=1024m

모든 빌드 또는 정리에서 여러 Java 프로세스가 시작되어 메모리 부족 오류가 발생합니다.

무차별 대입 솔루션 :

빌드 또는 실행 전에 java.exe 프로세스를 종료하십시오. 이것은 java와 함께 작동하는 다른 활성 응용 프로그램에 부작용이 있습니다.

[Android 스튜디오 1.4-JRE 1.7.0_75-b13]


Mac에서는 ~ / .gradle로 이동하여 캐시와 데몬 폴더를 모두 삭제합니다. 이들은 재생성됩니다.


Gradle 빌드 파일에서 테스트 {} 블록 내에 다음 jvmArgs를 추가하여 perm-gen 공간 할당을 늘립니다.

test {
    jvmArgs "-XX:MaxPermSize=1024m"
}

참고 URL : https://stackoverflow.com/questions/17012619/android-studio-gradle-issue-outofmemoryerror-permgen-space

반응형