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“.
Bekannte Probleme mit der Version 3.4.0
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 Behebung dieses Problems 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.
Updates für das Android-Gradle-Plug-in 3.4.0
Informationen zu den Neuerungen im Android Gradle-Plug-in 3.4.0 finden Sie in den Versionshinweisen.
Dialogfeld „Neue Projektstruktur“
Mit dem neuen Dialogfeld „Projektstruktur“ können Sie Abhängigkeiten einfacher aktualisieren und verschiedene Aspekte Ihres Projekts konfigurieren, z. B. 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 die Taste Ctrl+Shift+Alt+S
oder unter macOS die Taste Command+;
(Semikolon) drücken. Beschreibungen einiger neuer und aktualisierter Abschnitte der PSD finden Sie unten.
Variablen
Im neuen Bereich „Variablen“ der PSD können Sie Buildvariablen erstellen und verwalten, z. B. solche, mit denen Sie Versionsnummern für Abhängigkeiten im gesamten Projekt einheitlich halten.
- Sie können Build-Variablen, die bereits in den Gradle-Build-Scripts Ihres Projekts vorhanden sind, schnell aufrufen und bearbeiten.
- Fügen Sie neue Build-Variablen direkt über die PSD auf Projekt- oder Modulebene hinzu.
Hinweis:Wenn in Ihren vorhandenen Build-Konfigurationsdateien Werte über komplexe Groovy-Scripts 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
Im Abschnitt Vorschläge finden Sie Vorschläge für Aktualisierungen von Projektabhängigkeiten und Build-Variablen.
Neuer Resource Manager
Der Ressourcen-Manager 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 > Ressourcen-Manager 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 Zeichnungs-Assets gleichzeitig importieren, indem Sie sie per Drag-and-drop in das Toolfenster Ressourcenmanager ziehen oder den Assistenten Zeichnungselemente 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 Zeichnbare Elemente importieren können Sie Ihre 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 Sie Symboldateien für die gemeinsamen .so
-Bibliotheken in Ihrem APK bereitstellen, prü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 Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing in einem Schritt. Das führt zu erheblichen Leistungsverbesserungen beim Build. 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.
R8 ist für die Verwendung mit Ihren vorhandenen ProGuard-Regeln konzipiert. Sie müssen also wahrscheinlich nichts unternehmen, 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 Bereich Deklarierte Attribute sind die Attribute aufgeführt, die in der Layoutdatei angegeben sind. Dort können Sie auch schnell neue hinzufügen.
- Der Bereich Attribute enthält jetzt neben jedem Attribut einen Indikator. Dieser ist ausgefüllt, wenn der Wert des Attributs eine Ressourcenreferenz ist, andernfalls leer.
- Attribute mit Fehlern oder Warnungen werden jetzt hervorgehoben. Rote Markierungen weisen auf Fehler hin (z. B. wenn Sie ungültige Layoutwerte verwenden), 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 in einer neuen Absichtsaktion 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 Absichtsaktion ganz einfach mit nur einem Klick tun, wie unten gezeigt.
Da Jetpack die Supportbibliothek in einzelne Pakete verpackt hat, die einfacher zu verwalten und zu aktualisieren sind, können Sie mit dieser Absichtsaktion schnell nur die Abhängigkeiten hinzufügen, die Sie für die von Ihnen verwendeten Jetpack-Komponenten benötigen.