Implementieren von MultiDex führt zu einer so langen Kompilierung und schließlich zu einem Heap-Space-Fehler

Ich habe ein großes Android-Projekt, bei dem ich das @ bekommen haDex kann nicht ausgeführt werden: Methoden-ID nicht in [0, 0xffff]: 65536 Error; Ich glaube, einige von euch haben dieses Problem definitiv schon einmal durchlaufen. Dies ist ein Fehler aufgrund zu vieler Methoden, auf die in der App verwiesen wird.

Ich habe online nach verschiedenen Quellen gesucht und @ gefundDie könnte die beste Lösung sein.

Und ich habe folgendes getan:

HinzugefügtmultiDexEnabled = true in demdefaultConfig Block aus build.gradle.

Fügte die folgende Abhängigkeit hinzu:

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

Überschrieb den folgenden Code in meiner App-Klasse.

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

Now, der Fehler ist weg, aber ich habe ein neues Problem. Wenn ich die App starte, benötigt der Compiler mehr als 3 Minuten, um die App zu kompilieren und auszuführen, und gibt mir schließlich den folgenden Fehler:

UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: Java heap space

Ich verstehe, dass dieser Fehler aufgrund einer hohen Speichernutzung auftritt, aber ich weiß nicht, wie ich ihn beheben soll. Ich verwende Android Studio 1.0.2 und Android API 21.

Vielen Dank

BEARBEITE:

Ich habe bereits @ gechecWie man “OutOfMemoryError: Java Heap Space” beim Kompilieren der MonoDroid App in MonoDevelop repariert, aber dies deckt nicht den Grund des Problems ab, und außerdem verwende ich Xamarin Studio nicht.

EDIT2:

Das genaue Symptom ist wie folgt:
Wenn ich den Code kompiliere, zeigt die Gradle-Konsole Hunderte von Warnungen an, die besagen, dass "InnerClasses-Attribut für eine anonyme innere Klasse ignoriert" (was einige andere Stackoverflow-Antworten darauf hindeuten, dass es sich nicht um ernsthafte Warnungen handelt), und dann nichts als einen blinkenden Cursor für a währenddessen und nach ungefähr einer Minute wird mir der Fehler angezeigt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage