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 zugehörigen Beitrag im Release Updates-Blog.
3.4.1 (Mai 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.
Bekannte Probleme mit Version 3.4.0
Das Profiling ist deaktiviert, wenn Sie Ihre App auf einem Gerät mit Android Q Beta bereitstellen.
- Bei Verwendung der Data Binding Library schlägt
LiveDataListener.onChanged()
möglicherweise mit einem NPE fehl. Eine Fehlerbehebung für dieses Problem wird in Android Studio 3.4.1 enthalten sein und ist 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 über die Version 2018.3.4 aktualisiert.
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.
Neues Dialogfeld „Projektstruktur“
Mit dem neuen Dialogfeld „Projektstruktur“ (Project Structure Dialog, PSD) 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 ö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 finden Sie Beschreibungen einiger neuer und aktualisierter Abschnitte der PSD.
Variablen
Im neuen Bereich „Variablen“ des PSD können Sie Build-Variablen erstellen und verwalten, z. B. um Versionsnummern für Abhängigkeiten in Ihrem Projekt einheitlich zu halten.
- Sie können Build-Variablen, die bereits in den Gradle-Build-Skripts Ihres Projekts vorhanden sind, schnell aufrufen und bearbeiten.
- Fügen Sie neue Build-Variablen direkt aus der 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 Build-Dateien, die in Kotlin geschrieben wurden, nicht mit dem PSD bearbeiten.
Module
Im Bereich Module können Sie Properties konfigurieren, die auf alle Build-Varianten in einem vorhandenen Modul angewendet werden, oder Ihrem Projekt neue Module hinzufügen. 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, wie sie von Gradle während der Projektsynchronisierung aufgelöst wurde:
- Wählen Sie im linken Bereich des PSD Dependencies (Abhängigkeiten) aus.
- Wählen Sie im Bereich Module ein Modul aus, dessen aufgelöste Abhängigkeiten Sie prüfen möchten.
- Öffnen Sie auf der rechten Seite des PSD den Bereich Resolved Dependencies (Aufgelöste Abhängigkeiten), der unten dargestellt ist.
Sie können auch schnell nach Abhängigkeiten für Ihr Projekt suchen und sie hinzufügen. Wählen Sie dazu zuerst ein Modul im Bereich Dependencies (Abhängigkeiten) des PSD aus, klicken Sie im Bereich Declared Dependencies (Deklarierte 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ähltem Abhängigkeitstyp wird ein Dialogfeld ähnlich dem unten stehenden angezeigt, in dem Sie die Abhängigkeit dem Modul hinzufügen können.
Build-Varianten
In diesem Abschnitt des PSD erstellen und konfigurieren Sie Build-Varianten und Produktvarianten für jedes Modul in Ihrem Projekt. Sie können Manifestplatzhalter und ProGuard-Dateien hinzufügen, Signaturschlüssel zuweisen und vieles mehr.
Vorschläge
Im Bereich Vorschläge finden Sie Vorschläge für Aktualisierungen von Projektabhängigkeiten und Build-Variablen (siehe unten).
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 über die Menüleiste öffnen, indem Sie Ansicht > Toolfenster > Ressourcen-Manager auswählen. Mit dem Ressourcenmanager haben Sie folgende Möglichkeiten:
- Ressourcen visualisieren:Sie können Drawables, Farben und Layouts in der Vorschau 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 Resource Manager ziehen oder den Assistenten Drawables importieren verwenden. Klicken Sie zum Aufrufen des Assistenten links oben im Toolfenster auf die Schaltfläche (+), und wählen Sie dann im Drop-down-Menü Drawables importieren aus.
-
SVGs in
VectorDrawable
-Objekte konvertieren:Mit dem Assistenten Drawables importieren können Sie Ihre SVG-Bilder inVectorDrawable
-Objekte konvertieren. - Assets per Drag-and-drop einfügen:Im Toolfenster Ressourcenmanager können Sie Drawables per Drag-and-drop in die Design- und XML-Ansicht des Layout-Editors einfügen.
- Alternative Versionen ansehen:Sie können jetzt alternative Versionen Ihrer Ressourcen ansehen, indem Sie im Fenster Tool doppelt auf eine Ressource klicken. In dieser Ansicht sehen Sie die verschiedenen Versionen, die Sie erstellt haben, und die enthaltenen Qualifizierer.
- Kachel- und Listenansicht:Sie können die Ansicht im Toolfenster ändern, um Ihre Ressourcen in verschiedenen Anordnungen zu visualisieren.
Weitere Informationen zum Verwalten von App-Ressourcen
Build-IDs beim Profiling und Debuggen von APKs prüfen
Wenn Sie Debugging-Symboldateien für die gemeinsam genutzten .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. Bei einer Abweichung werden die Symboldateien abgelehnt. Wenn Sie keinen Build mit einer Build-ID erstellt haben, kann es zu Problemen beim Debugging kommen, wenn Sie falsche Symboldateien angeben.
R8 standardmäßig aktiviert
R8 führt Desugaring, Shrinking, Obfuscating, Optimizing und Dexing in einem Schritt aus. Das führt zu erheblichen 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 Plug-in 3.4.0 und höher aktiviert.
Das Bild unten bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.
Mit R8 werden Desugaring, Shrinking, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.
R8 ist so konzipiert, dass es mit Ihren vorhandenen ProGuard-Regeln funktioniert. Sie müssen also wahrscheinlich nichts weiter tun, 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 Verkleinern und Optimieren dazu kommen, dass Code entfernt wird, der von ProGuard möglicherweise nicht entfernt worden wäre. In dieser unwahrscheinlichen Situation müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit der Code in der Build-Ausgabe enthalten bleibt.
Wenn Sie Probleme mit R8 haben, lesen Sie die Häufig gestellten Fragen zur R8-Kompatibilität, um zu prüfen, 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 eine der folgenden Zeilen in die Datei gradle.properties
Ihres Projekts einfü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 Build-Typ useProguard
in der Datei build.gradle
Ihres App-Moduls auf false
festlegen, verwendet das Android-Gradle-Plug-in R8, um den Code Ihrer App für diesen Build-Typ zu verkleinern. Das gilt unabhängig davon, ob Sie R8 in der Datei gradle.properties
Ihres Projekts deaktivieren.
Der Navigationseditor unterstützt jetzt alle Argumenttypen
Alle von der Navigationskomponente unterstützten Argumenttypen werden jetzt 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 in eine einzelne Seite mit Abschnitten umgewandelt, die Sie maximieren können, um konfigurierbare Attribute aufzurufen. Der Bereich Attribute enthält außerdem die folgenden Aktualisierungen:
- Im neuen Bereich Deklarierte Attribute werden die Attribute aufgeführt, die in der Layoutdatei angegeben sind. Außerdem können Sie hier schnell neue Attribute hinzufügen.
- Im Bereich Attribute werden jetzt auch Indikatoren neben jedem Attribut angezeigt. Sie sind ausgefüllt, wenn der Wert des Attributs ein Ressourcenverweis ist, und leer, wenn dies nicht der Fall ist.
- Attribute mit Fehlern oder Warnungen werden jetzt hervorgehoben. Rote Markierungen weisen auf Fehler hin, z. B. wenn Sie ungültige Layoutwerte verwenden. Orange Markierungen weisen auf Warnungen hin, z. B. wenn Sie hartcodierte Werte verwenden.
Neue Intention-Aktion zum schnellen Importieren von Abhängigkeiten
Wenn Sie bestimmte Jetpack- und Firebase-Klassen in Ihrem Code verwenden, wird eine neue Intention-Aktion vorgeschlagen, mit der Sie die erforderliche Gradle-Bibliotheksabhängigkeit zu Ihrem Projekt hinzufügen können, sofern Sie dies noch nicht getan haben. Wenn Sie beispielsweise auf die Klasse WorkManager
verweisen, ohne zuerst die erforderliche Abhängigkeit android.arch.work:work-runtime
zu importieren, können Sie dies mit einer Intention-Aktion ganz einfach mit einem einzigen Klick tun, wie unten dargestellt.
Da die Support-Bibliothek in Jetpack in separate Pakete umgepackt wurde, 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.