Gradle - Android Studio Build zu langsam Multidex-Anwendung
Wenn ich mein Projekt das multidex:wahr, und machen Sie eine Application-Klasse, die sich aus den MultiDexApplication, mein Projekt zu bauen verging die Zeit von 20 sec auf etwa 90 Sek.Wie zu tun, einige schneller?
Kommentar zu dem Problem
AFAIK, gibt es keine Möglichkeit es schneller zu machen. Die einzige Lösung ist die Verringerung der Anzahl von Methoden in Ihre app und erhalten rid von
MultiDex
. Selbst die offizielle Dokumentation sagt Das bedeutet, dass die routine baut durchgeführt als Teil des Entwicklungsprozesses mit multidex in der Regel länger dauern und möglicherweise verlangsamen Ihre Entwicklung. Sind Sie sicher, dass alle Bibliotheken importiert sind wirklich notwendig für Ihre app? Wenn Nein kannst du etwas entfernen und vermeiden multidex
Ich muss dies tun, wenn Sie hinzufügen, um Abhängigkeiten alle Bibliotheken, für die google Kalender-api. In diesen Thema, das ich beschreiben Ihr problem: stackoverflow.com/questions/30104925/... . Vielleicht haben Sie jetzt, wie Sie um das multidex? Ich denke, das kann vermieden werden, aber ich dont jetzt andere Methoden. Danke)
InformationsquelleAutor der Frage | 2015-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wie ich sind, die das schon versucht Vic Vu ' s Lösung aber immer noch nicht vermeiden können, aktivieren multiDex dann können Sie versuchen, diese (solange Sie sind mit einem Gerät mit Android 5.0 und oben).
Hinweis wird Dies nur beschleunigen Ihre Entwicklung zu bauen. Ihre Produktion bauen wird immer noch langsam sein.
Grundsätzlich müssen Sie einführen 2 Produkt-Aromen eine für
dev
und eine fürprod
.Hinzufügen
multiDexEnabled true
, Und ich habe eine Klasse die sich
Application
also ich hatte zu überschreibenattachBaseContext()
Wenn Sie nicht die Verlängerung
Application
verwenden Sie einfachMultiDexApplication
in IhremAndroidManifest.xml
application
tag.Sicherzustellen, dass in Ihrem Android Studio
Build Variants
Sie zeigendevDebug
.Lesen Sie die komplette Anleitung hier https://developer.android.com/studio/build/multidex.html#dev-build
InformationsquelleAutor der Antwort Mark Pazon
Liefert als eine Antwort, denn dies ist eine bessere Passform mit der Formatierung.
Einfach Ihre Frage zu beantworten: Nein, es gibt keinen Weg. Multidex ist ein Prozess gemeint, um zu helfen, heben Sie die Last des 65k-Methode beschränken. Dieser Prozess ist kompliziert und wird einfach machen Sie Ihren build mal länger.
Die besten Sie tun können, ist zu senken Sie Ihre Methode zählen.
In deinem build.gradle ( versorgt hier ), die Sie verwenden:
Aber wenn man sich die letzten play-services-api können Sie wählen, und wählen, welche Dienstleistungen Sie tatsächlich benötigen.
Blick auf Tabelle 1 auf dieser Seite.
Verwenden Sie nur die diejenigen, die Sie brauchen. Google play-Dienste als ganzes, ist irgendwo rund 30k Methoden.
Dass sollte helfen.
InformationsquelleAutor der Antwort VicVu
Multidexing verwendet mehr Speicher. Als Sie näher an Ihre max-heap-Größe in Java finden Sie Java verbringt mehr Zeit damit, GC, als es dabei keine wirkliche Arbeit, kann dies die Dinge verlangsamen viel.
Würde ich dringend empfehlen, die Erhöhung der max-heap-Größe bei Verwendung multidex. Fügen Sie den folgenden, um die android-Schließung in deinem build.gradle-Datei um die max-heap-Größe 4GB (Machen es größer/kleiner, wenn Sie möchten):
InformationsquelleAutor der Antwort Will Calderwood
Kommt es an.
Du noch nicht angegeben, es in Ihrer Frage, aber wenn Sie nur wollen, um die Geschwindigkeit-up Ihre Entwicklung baut - dann vermeiden Sie die zusätzliche Arbeit. Die offizielle Dokumentation enthält eine ganze Abschnitt darüber.
InformationsquelleAutor der Antwort Alex Lipov