Problem mit zu wenig Speicher nach dem Aktualisieren von buildToolsVersion '23 .0.1 'in Android Studio


75

Ich bin immer sehr oft von Speicherproblem heraus nach der Aktualisierung buildToolsVersion '22.0.1'auf buildToolsVersion '23.0.1'mir wirklich bin verwirrt und weiß nicht , wie dieses Problem zu lösen, da dieser Fehler nur bei zeigt buildToolsVersion 23.0.1. Während es gut funktioniert, wenn ich es ändere 22.0.1. Bitte hilf mir. Ich poste den Fehler, den ich bekomme, wie folgt:

Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_25\bin\java.exe'' finished with non-zero exit value 1

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.1'

    defaultConfig {
        applicationId "com.example.app"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        // Enabling multidex support.
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {

    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:design:23.0.0'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'com.android.support:palette-v7:23.0.1'
    compile 'com.google.android.gms:play-services:7.5.0'
}

Danke im Voraus.

Antworten:


200

Fügen Sie dies zu Ihrem Android-Abschluss in Ihrer build.gradle- Datei hinzu:

dexOptions {
    javaMaxHeapSize "4g"
}

Die JAR-Datei von Android Studio Google, die zu einem GC-Overhead-Limit führt, hat den Fehler überschritten


Ich hatte das gleiche Problem und das hat funktioniert. Aber warum ist dieses Problem aufgetreten?
L. Swifter

@L. Schneller scheint es, dass die GC-Overhead-Grenze überschritten wurde. Es scheint, dass Java mehr Heap-Speicherplatz benötigt als der Standard.
mhdjazmati

gleiches Problem und gelöst auf Android Studio 2.2 Beta 2 / Ubuntu 16.04 LTS
Paulo Mendonça

29

Die akzeptierte Antwort funktioniert, aber ich war ein bisschen verwirrt darüber, wo ich die dexOptionsin meine stecken soll build.gradle. Wir haben es tatsächlich unter den Android-Bereich gestellt.

Hier ist ein Beispielausschnitt:

android {

    dexOptions {
        javaMaxHeapSize "4g"
    }

    ......
}

13

Eigentlich arbeitete für mich eine komplexere Lösung, die alles von oben kombiniert und Multidex in der build.gradle- Datei für das Modul aktiviert .

A. Fügen Sie diese Zeile im Abschnitt defaultConfig hinzu , um multiDex zu aktivieren

// Enabling multidex support.
multiDexEnabled true

B. Dann setzen Sie die DexOptions wie folgt :

dexOptions {
    incremental true
    javaMaxHeapSize "4G"
}

C. Nach dem Wechsel zu Multidex und dem Setzen des Heapspeichers auf 4 g kann ein Überlauffehler auftreten, der dazu führt, dass ich die jvmargs-Zeile aus der Datei gradle.properties des Projekts auskommentiere und ändere, z.

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

Die Werte können je nach Maschine unterschiedlich sein. Sie können auch doppelte Werte verwenden.


6

Zusätzlich zu der obigen Prozedur gibt es eine weitere Option zum Festlegen von JVM-Argumenten.

org.gradle.jvmargs="-Xms2g -Xmx4g" in gradle.properties .

Die Einstellung dient zum Optimieren des Speichers. Xms: Startspeicher Xmx: Maximaler Speicher


2

Ich habe dieses Problem gelöst

  1. gehe zu "System"
  2. Umgebungsbedingungen verbessert
  3. Bearbeiten Sie die _JAVA_OPTIONS-Werte von "-Xms1024m" bis "-Xms2048m"
    (falls nicht _JAVA_OPTIONS vorhanden, erstellen Sie sie, indem Sie auf die Schaltfläche "Neu" klicken).
  4. ok & speichern Neustart

Ich denke, es wird auch für Sie hilfreich sein. Wenn es nützlich ist, stimmen Sie dieser Antwort zu.


Ja @Ali das ist für Windows
Dinesh

0
dexOptions {
        javaMaxHeapSize "4g"
    }

Ich hatte das gleiche Problem, indem ich dies in die Datei build.gradle (Modulebene) einfügte, um mein Problem zu lösen


0

Verwenden Sie dies in Ihrer App-Ebene build.gradle:

android {
    dexOptions {
        javaMaxHeapSize "4g"
    }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.