Android Studio Google JAR 파일에서 GC 오버헤드 제한을 초과했습니다.
OS X에서 Android Studio를 사용하고 있습니다.다음 오류 메시지가 나타납니다.
실패: 예외와 함께 빌드에 실패했습니다.
무엇이 잘못되었는가?작업 ':app:preDexDebug'.com.android.ide.common'을 실행하지 못했습니다.내부의.LoggedErrorException:/Applications/Android Studio.app/sdk/build-tools/Android-4.4 명령을 실행하지 못했습니다.W/dx --dex --output / Users / alex / Android Studio Projects / SilentSMS / app / build / intermediates / pre-dexed / debug / Android - 4 . 3 _ r 2 . 1 - f22bbbbbff4 d17230 e 169 a484a9 c2195 f130 d130 d2 . jar / jarx
에러 코드: 3 출력:
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:665)
at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288)
at com.android.dx.cf.code.Simulator$SimVisitor.visitLocal(Simulator.java:612)
at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:412)
at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94)
at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:782)
at com.android.dx.cf.code.Ropper.doit(Ropper.java:737)
at com.android.dx.cf.code.Ropper.convert(Ropper.java:346)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282)
at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
at com.android.dx.command.dexer.Main.processClass(Main.java:682)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
at com.android.dx.command.dexer.Main.access$600(Main.java:78)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:596)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
이 라이브러리를 사용하고 있습니다.
http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/
JAR 파일을 가져와 프로젝트에 추가했습니다.구축하려는 프로젝트는 다음과 같습니다.
https://github.com/domi007/silentSMS/
xms와 xmx 값이 너무 낮아서 그런 것 같습니다.다음을 늘렸습니다.
/Applications/Android Studio.app/bin/idea.vm options에 다음과 같이 표시됩니다.
-Xms256m
-Xmx1024m
하지만 여전히 오류가 발생합니다.왜 이런 일이 일어날까요?침묵을 떠나서SMS 앱은 Eclipse 프로젝트이며, Android Studio에 코드를 이식하는 저는 아무것도 변경하지 않았습니다.Android Studio의 검출 에러에 대해서는, 전혀 문제가 없습니다.
덱싱 작업의 힙 제한을 높이는 방법은 따로 있다고 생각합니다.이 항목을 에 추가합니다.android
의 종료build.gradle
파일:
dexOptions {
javaMaxHeapSize "4g"
}
도움이 되는지 알아봐야지
(Scott Barta의 답변에 대한 아이디어 제공)
이 경우 힙 크기를 늘리려면 다음과 같이 됩니다.
Android Studio 1.1.0 사용
android {
dexOptions {
incremental true
javaMaxHeapSize "2048M"
}
}
위의 코드를 Build.gradle 파일에 입력합니다.
이 새로운 문제는 최신 버전의 안드로이드가 원인입니다.
프로젝트 루트 폴더로 이동하여gradle.properties
및 다음 옵션을 추가합니다.
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
그런 다음 변경 사항을 에 추가합니다.build.gradle
파일:
dexOptions {
incremental = true
preDexLibraries = false
javaMaxHeapSize "4g" // 2g should be also OK
}
Android Studio 3.5.3
메모리 설정(Mac의 경우 Cmd + Shift + A)을 찾거나 [설정]에서 도움말을 클릭하여 "메모리 설정"을 입력하고 IDE 힙 크기 및/또는 데몬 힙 크기를 원하는 대로 늘립니다.
Instant Run 비활성화 방법:
메뉴 기본 설정 → 빌드 → 인스턴트 실행 "핫 스왑 코드로 인스턴트 실행 활성화"
빌드 속도가 느려지고 큰 사이즈의 pidXXX.hprof 파일이 생성되어 Android Studio gc 오버헤드 제한이 초과된 것은 Instant Run이라고 생각합니다.
(내 디바이스 SDK는 19입니다.)
내게는 여기서 본 답이 통하지 않았다.CPU가 너무 열심히 작동하면 컴퓨터가 뜨거워질 거라고 추측했어요.CPU(크롬 등)를 대량으로 소비하는 프로그램을 닫고 노트북을 냉각시킨 후 문제가 사라졌습니다.
참조용:java.exe 프로세스(실제로 gradle 관련 프로세스)에 의한 CPU 사용률은 96%~97%이며 메모리 사용량은 200만K를 넘었습니다.
이것을 build.gradle 파일에 추가합니다.
dexOptions {
javaMaxHeapSize "2g"
}
4g은 조금 오버킬입니다.build Gradle을 변경하지 않으면 FILE -> Invalid caches / restart를 사용할 수 있습니다.
그건 나한테 잘 돼...
태스크 매니저에서 모든 Java.exe를 강제로 종료하고 Android Studio를 재시작하면 작동했습니다.
하고 Android Studio 3.4
나한테 효과가 있었던 건 다음 대사를 지운 것뿐이야build.gradle
삭제:
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
★★★★★★★★★★★★★★★★★★Android Studio 3.4
를 사용하고 .R8
full mode
직접 이 되지 않습니다.Proguard
하고 있습니다.gradle.properties
:
「」를 ,minifyEnabled true
:
다음 행을 삭제합니다.
android.enableR8=true
이 됩니다.build.gradle
,android
삭제:
dexOptions {
incremental = true
preDexLibraries = false
javaMaxHeapSize "4g" // 2g should be also OK
}
이것이 누군가에게 도움이 되기를 바랍니다:)
에서는, 「」의 됩니다.apply plugin: 'com.android.application'
내 빌드 그래들에 추가되었다.중복된 복사본을 삭제하고 모든 적용 플러그인이 맨 위에 있는지 확인하면 문제가 해결되었습니다.
위에서 설명한 모든 해결책을 시도해 보았지만, 여전히 문제에 직면해 있었습니다.마침내 나는 문제를 해결한 다음 사항을 우연히 발견했다.
(MacOS의 경우) [설정]-> [메모리 설정]-> [기존 등급의 데몬을 찾습니다]-> [모두 정지했습니다.
언급URL : https://stackoverflow.com/questions/25013638/android-studio-google-jar-file-causing-gc-overhead-limit-exceeded-error
'programing' 카테고리의 다른 글
Vuejs 및 Vue.set(), 어레이 업데이트 (0) | 2022.08.01 |
---|---|
Java JDK 소스 코드는 어디서 찾을 수 있나요? (0) | 2022.08.01 |
Vuex 속성 값을 변환이 아닌 액션 내부에서 설정하는 것이 잘못되었습니까? (0) | 2022.08.01 |
완벽한 JPA 엔티티 생성 (0) | 2022.08.01 |
비트 필드를 사용하는 것은 어떤 경우에 가치가 있습니까? (0) | 2022.08.01 |