Android Studio 3.4 (April 2019)
Android Studio 3.4 ist eine Hauptversion mit einer Vielzahl neuer Funktionen und Verbesserungen.
3.4.2 (Juli 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
3.4.1 (Mai 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
3.4.0 Bekannte Probleme
Das Profiling ist deaktiviert, wenn Sie Ihre App auf einem Gerät mit Android Q Beta bereitstellen.
- Wenn Sie die Data Binding Library verwenden, schlägt
LiveDataListener.onChanged()
möglicherweise mit einer Null-Pointer-Ausnahme fehl. Eine Lösung für dieses Problem ist in Android Studio 3.4.1 enthalten und bereits in der neuesten Vorabversion von Android Studio 3.5 verfügbar. (Siehe Problem 122066788)
IntelliJ IDEA 2018.3.4
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA aktualisiert, die in der Version 2018.3.4 enthalten sind.
Aktualisierungen des Android Gradle-Plug-ins 3.4.0
Informationen zu den Neuerungen im Android Gradle-Plug-in 3.4.0 finden Sie in den Versionshinweisen.
Dialogfeld „Neue Projektstruktur“
Das neue Projektstrukturdialogfeld (PSD) erleichtert das Aktualisieren von Abhängigkeiten und das Konfigurieren verschiedener Aspekte Ihres Projekts wie Module, Build-Varianten, Signaturkonfigurationen und Build-Variablen.
Sie können die PSD-Datei öffnen, indem Sie in der Menüleiste Datei > Projektstruktur auswählen. Sie können die PSD auch öffnen, indem Sie unter Windows und Linux Ctrl+Shift+Alt+S
oder unter macOS Command+;
(Semikolon) drücken. Unten werden einige der neuen und aktualisierten Abschnitte der PSD beschrieben.
Variablen
Im neuen Variablenbereich der PSD können Sie Build-Variablen erstellen und verwalten, z. B. um Versionsnummern für Abhängigkeiten im gesamten Projekt einheitlich zu halten.
- Sie können Build-Variablen, die bereits in den Gradle-Build-Scripts Ihres Projekts vorhanden sind, schnell aufrufen und bearbeiten.
- Neue Build-Variablen auf Projekt- oder Modulebene direkt über die PSD hinzufügen.
Hinweis:Wenn in Ihren vorhandenen Build-Konfigurationsdateien Werte über komplexe Groovy-Skripts zugewiesen werden, können Sie diese Werte möglicherweise nicht über die PSD bearbeiten. Außerdem können Sie mit der PSD keine Build-Dateien bearbeiten, die in Kotlin geschrieben wurden.
Module
Konfigurieren Sie Properties, die auf alle Buildvarianten in einem vorhandenen Modul angewendet werden, oder fügen Sie Ihrem Projekt im Bereich Module neue Module hinzu. Hier können Sie beispielsweise defaultConfig
-Attribute konfigurieren oder Signaturkonfigurationen verwalten.
Abhängigkeiten
So prüfen und visualisieren Sie jede Abhängigkeit im Abhängigkeitsdiagramm Ihres Projekts, die von Gradle während der Projektsynchronisierung aufgelöst wurde:
- Wählen Sie im linken Bereich der PSD Dependencies (Abhängigkeiten) aus.
- Wählen Sie im Bereich Module ein Modul aus, für das Sie die aufgelösten Abhängigkeiten prüfen möchten.
- Öffnen Sie rechts in der PSD den Bereich Aufgelöste Abhängigkeiten, der unten dargestellt ist.
Sie können auch schnell nach Abhängigkeiten suchen und diese Ihrem Projekt hinzufügen. Wählen Sie dazu zuerst ein Modul im Bereich Dependencies (Abhängigkeiten) der PSD aus, klicken Sie im Bereich Declared Dependencies (Angekündigte Abhängigkeiten) auf die Schaltfläche (+) und wählen Sie den Typ der Abhängigkeit aus, die Sie hinzufügen möchten.
Je nach ausgewählter Abhängigkeit sollte ein Dialogfeld ähnlich dem unten angezeigt werden, in dem Sie die Abhängigkeit dem Modul hinzufügen können.
Build-Varianten
In diesem Abschnitt der PSD erstellen und konfigurieren Sie Buildvarianten und Produktvarianten für jedes Modul in Ihrem Projekt. Sie können unter anderem Manifest-Platzhalter hinzufügen, ProGuard-Dateien hinzufügen und Signaturschlüssel zuweisen.
Vorschläge
Sehen Sie sich die vorgeschlagenen Aktualisierungen für Projektabhängigkeiten und Build-Variablen im Abschnitt Vorschläge an, wie unten gezeigt.
Neuer Resource Manager
Der Ressourcenmanager ist ein neues Toolfenster zum Importieren, Erstellen, Verwalten und Verwenden von Ressourcen in Ihrer App. Sie können das Toolfenster öffnen, indem Sie in der Menüleiste Ansicht > Toolfenster > Ressourcenmanager auswählen. Mit dem Ressourcenmanager haben Sie folgende Möglichkeiten:
- Ressourcen visualisieren:Sie können sich eine Vorschau von Drawables, Farben und Layouts ansehen, um schnell die benötigten Ressourcen zu finden.
- Bulk-Import:Sie können mehrere Drawable-Assets gleichzeitig importieren, indem Sie sie entweder per Drag-and-drop in das Toolfenster von Resource Manager ziehen oder den Assistenten Drawables importieren verwenden. Klicken Sie zum Aufrufen des Assistenten links oben im Toolfenster auf das Pluszeichen (+) und wählen Sie dann im Drop-down-Menü Zeichnbare Elemente importieren aus.
-
SVGs in
VectorDrawable
-Objekte konvertieren:Mit dem Assistenten Drawables importieren kannst du deine SVG-Bilder inVectorDrawable
-Objekte konvertieren. - Assets per Drag-and-drop hinzufügen:Im Toolfenster Ressourcenmanager können Sie Drawables per Drag-and-drop sowohl in die Design- als auch in die XML-Ansicht des Layout-Editors ziehen.
- Alternative Versionen ansehen:Sie können jetzt alternative Versionen Ihrer Ressourcen aufrufen, indem Sie im Fenster Tool auf eine Ressource doppelklicken. In dieser Ansicht sehen Sie die verschiedenen Versionen, die Sie erstellt haben, und die eingeschlossenen Einschränkungen.
- Kachel- und Listenansicht:Sie können die Ansicht im Toolfenster ändern, um Ihre Ressourcen in verschiedenen Anordnungen zu visualisieren.
Weitere Informationen finden Sie im Leitfaden zum Verwalten von App-Ressourcen.
Build-IDs beim Profiling und Debuggen von APKs prüfen
Wenn du in deinem APK Debugging-Symboldateien für die gemeinsam genutzten .so
-Bibliotheken bereitstellst, überprüft Android Studio, ob die Build-ID der bereitgestellten Symboldateien mit der Build-ID der .so
-Bibliotheken im APK übereinstimmt.
Wenn Sie die nativen Bibliotheken in Ihrem APK mit einer Build-ID erstellen, prüft Android Studio, ob die Build-ID in Ihren Symboldateien mit der Build-ID in Ihren nativen Bibliotheken übereinstimmt. Andernfalls werden die Symboldateien abgelehnt. Wenn Sie den Build nicht mit einer Build-ID erstellt haben, kann die Angabe falscher Symboldateien zu Problemen beim Debuggen führen.
R8 standardmäßig aktiviert
R8 integriert Entugaring, Schrumpfung, Verschleierung, Optimierung und Dexing in einem Schritt. Dies führt zu erkennbaren Verbesserungen der Build-Leistung. R8 wurde im Android Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte mit dem Plug-in 3.4.0 und höher aktiviert.
Das folgende Bild bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.
Mit R8 werden Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.
Beachten Sie, dass R8 mit Ihren bestehenden ProGuard-Regeln kompatibel ist. Sie müssen also wahrscheinlich keine Maßnahmen ergreifen, um von R8 zu profitieren. Da es sich jedoch um eine andere Technologie als ProGuard handelt, die speziell für Android-Projekte entwickelt wurde, kann es beim Schrumpfen und Optimieren dazu kommen, dass Code entfernt wird, der von ProGuard möglicherweise nicht entfernt wurde. In diesem unwahrscheinlichen Fall müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit dieser Code in der Build-Ausgabe enthalten bleibt.
Wenn bei der Verwendung von R8 Probleme auftreten, lesen Sie die häufig gestellten Fragen zur Kompatibilität von R8, um zu sehen, ob es eine Lösung für Ihr Problem gibt. Wenn keine Lösung dokumentiert ist, melden Sie bitte einen Fehler.
Sie können R8 deaktivieren, indem Sie der gradle.properties
-Datei Ihres Projekts eine der folgenden Zeilen hinzufügen:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Hinweis:Wenn Sie für einen bestimmten Buildtyp in der Datei build.gradle
Ihres App-Moduls useProguard
auf false
festlegen, verwendet das Android Gradle-Plug-in R8, um den Code Ihrer App für diesen Buildtyp zu verkleinern, unabhängig davon, ob Sie R8 in der Datei gradle.properties
Ihres Projekts deaktivieren.
Navigation Editor unterstützt jetzt alle Argumenttypen
Alle Argumenttypen, die von der Navigationskomponente unterstützt werden, werden jetzt auch im Navigationseditor unterstützt. Weitere Informationen zu unterstützten Typen finden Sie unter Daten zwischen Zielen übergeben.
Verbesserungen am Layout-Editor {:#layout-editor}
Der Bereich Attribute im Layout-Editor wurde zu einer einzigen Seite mit Abschnitten zusammengefasst, die Sie maximieren können, um konfigurierbare Attribute zu sehen. Der Bereich Attribute enthält außerdem die folgenden Änderungen:
- Im neuen Abschnitt Angegebene Attribute werden die in der Layoutdatei angegebenen Attribute aufgelistet. Außerdem können Sie schnell neue Attribute hinzufügen.
- Der Bereich Attribute enthält jetzt neben jedem Attribut auch Indikatoren. Diese sind ausgefüllt, wenn der Wert des Attributs eine Ressourcenreferenz ist, und leer, wenn dies nicht der Fall ist.
- Attribute mit Fehlern oder Warnungen sind jetzt hervorgehoben. Rote Markierungen weisen auf Fehler hin (z. B. wenn Sie ungültige Layoutwerte verwenden) und orangefarbene Markierungen auf Warnungen (z. B. wenn Sie hartcodierte Werte verwenden).
Neue Absichtsaktion zum schnellen Importieren von Abhängigkeiten
Wenn Sie bestimmte Jetpack- und Firebase-Klassen in Ihrem Code verwenden, wird Ihnen mit einer neuen Intent-Aktion vorgeschlagen, Ihrem Projekt die erforderliche Gradle-Bibliotheksabhängigkeit hinzuzufügen, falls Sie dies noch nicht getan haben. Wenn Sie beispielsweise auf die WorkManager
-Klasse verweisen, ohne zuerst die erforderliche android.arch.work:work-runtime
-Abhängigkeit zu importieren, können Sie dies mit einer Intent-Aktion ganz einfach mit nur einem Klick tun, wie unten gezeigt.
Da Jetpack die Supportbibliothek in separate Pakete umverpackt hat, die einfacher zu verwalten und zu aktualisieren sind, können Sie mit dieser Intent-Aktion schnell nur die Abhängigkeiten hinzufügen, die Sie für die Jetpack-Komponenten benötigen, die Sie verwenden möchten.