[java] Die Android Studio Google JAR-Datei, die das GC-Overhead-Limit verursacht hat, hat den Fehler überschritten



Answers

In meinem Fall sieht das Vergrößern der Heap-Größe folgendermaßen aus:

Verwenden von Android Studio 1.1.0

android {
    dexOptions {
        incremental true
        javaMaxHeapSize "2048M"
    }
}

Fügen Sie den obigen Code in Ihre Build.gradle- Datei ein.

Question

Ich verwende Android Studio unter OS X. Ich erhalte diese Fehlermeldung:

FAILURE: Build ist mit einer Ausnahme fehlgeschlagen.

  • Was ist schief gelaufen: Ausführung fehlgeschlagen für Task ': app: preDexDebug'. com.android.ide.common.internal.LoggedErrorException: Fehler beim Ausführen des Befehls: / Programme / Android Studio.app/sdk/build-tools/android-4.4W/dx --dex --output / Users / alex / AndroidStudioProjects / SilentSMS / app / build / zwischenprodukte / pre-dexed / debug / android-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar

    Fehlercode: 3 Ausgang:

  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)

Ich benutze diese Bibliothek:

http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/

Ich habe die JAR-Datei gezogen und sie meinem Projekt hinzugefügt - das Projekt, das ich erstellen möchte, ist:

https://github.com/domi007/silentSMS/

Ich verstehe das, weil meine xms und xmx Werte zu niedrig sind. Ich habe sie erhöht in:

/ Anwendungen / Android Studio.app/bin/idea.vmoptions, so dass es jetzt heißt:

-Xms256m
-Xmx1024m

Ich bekomme jedoch immer noch den Fehler. Woran könnte das liegen? Abgesehen davon, dass die silentSMS-App ein Eclipse-Projekt ist und ich den Code auf Android Studio portiere, habe ich nichts geändert. In Bezug auf Android Studio Spotting-Fehler - es tut nicht, und alles andere sieht gut aus.




Ich deaktiviere meinen Instant Run von:

Menüeinstellungen → ErstellenInstant Run "Aktivieren Sie Instant Run zum Hot-Swap-Code"

Ich denke, es ist der Instant Run, der den Build langsam macht und eine große pidXXX.hprof-Datei erzeugt, die dazu führt, dass das AndroidStudio gc-Overhead-Limit überschritten wird.

(Mein Geräte-SDK ist 19.)




Für mich funktionierte keine der Antworten die ich hier gesehen habe. Ich vermutete, dass der Computer heiß ist, wenn er die CPU extrem stark arbeitet. Nachdem ich Programme geschlossen habe, die große Mengen an CPU verbrauchen (wie Chrom) und meinen Laptop abkühlen, verschwand das Problem.

Als Referenz: Ich hatte die CPU auf 96% -97% und Speicherverbrauch über 2.000.000K von einem java.exe-Prozess (was eigentlich Gradle bezogenen Prozess war).




Related