Android Studio 3.1 (März 2018)
Android Studio 3.1.0 ist ein wichtiger Release, der eine Vielzahl neuer Funktionen und Verbesserungen enthält.
3.1.4 (August 2018)
Dieses Update für Android Studio 3.1 enthält die folgenden Änderungen und Fehlerkorrekturen:
- Die gebündelte Kotlin-Version ist jetzt 1.2.50.
-
Neue Projekte werden mit
kotlin-stdlib-jdk* artifacts
erstellt und nicht mitkotlin-stdlib-jre*
-Artefakten, die nicht mehr unterstützt werden. - Das Parsen von ProGuard-Regeln durch R8 wurde verbessert.
- Folgende Fehler wurden behoben:
-
Der Versuch, die Kotlin-Hauptklasse auszuführen, ist mit einem Fehler fehlgeschlagen:
"Error: Could not find or load main class..."
- R8 ist bei bestimmten Optimierungen in eine Endlosschleife geraten.
- Wenn der Befehl Fehlgeschlagene Tests wiederholen im Fenster Ausführen verwendet wurde, wurde manchmal fälschlicherweise die Meldung „Es wurden keine Tests gefunden“ zurückgegeben.
-
D8 hat
invoke-virtual
-Instanzen nicht richtig verarbeitet, was zu einem Absturz mitVerifyError
geführt hat:invoke-super/virtual can't be used on private method
-
Der Data Binding-Compiler war von einer alten Version von
com.android.tools:annotations
abhängig. Der Compiler verwendet jetzt Tools-Annotationen aus dem Basisprojekt, sofern verfügbar. - Android Studio stürzte bei Fragmentübergängen ab, wenn Profiler verwendet wurden.
- Der Debugger ist beim Debuggen eines Layouts mit einem Textfeld abgestürzt.
- D8 konnte einige ZIP-Dateien mit Sonderzeichen nicht lesen.
3.1.3 (Juni 2018)
Dieses Update für Android Studio 3.1 enthält Korrekturen für die folgenden Fehler:
- Speicherlecks führten dazu, dass Android Studio langsam und nicht mehr reaktionsfähig wurde, nachdem Sie den Layout-Editor verwendet hatten. Dieses Update enthält Korrekturen für die meisten dieser Probleme. Wir planen, bald ein weiteres Update zu veröffentlichen, um zusätzliche Speicherlecks zu beheben.
- Einige mit D8 erstellte Anwendungen stürzten auf einigen Verizon Ellipsis-Tablets ab.
-
Die Installation von Apps, die mit D8 erstellt wurden, schlug mit einem
INSTALL_FAILED_DEXOPT
-Fehler auf Geräten mit Android 5.0 oder 5.1 (API-Level 21 oder 22) fehl. - Einige Anwendungen, die die OkHttp-Bibliothek verwendet haben und mit D8 erstellt wurden, sind auf Geräten mit Android 4.4 (API-Level 19) abgestürzt.
-
Android Studio konnte manchmal nicht gestartet werden und es wurde ein
ProcessCanceledException
während der Klasseninitialisierung fürcom.intellij.psi.jsp.JspElementType
angezeigt.
3.1.2 (April 2018)
Dieses Update für Android Studio 3.1 enthält Korrekturen für die folgenden Fehler:
- In einigen Fällen blieb Android Studio beim Beenden unbegrenzt hängen.
-
Builds, die mit Quellsätzen konfiguriert wurden, schlugen mit der folgenden Meldung fehl, wenn Instant Run aktiviert war:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Wenn Instant Run aktiviert war, schlugen Builds neuer Kotlin-Projekte fehl, wenn sie durch den Befehl Run (Ausführen) ausgelöst wurden.
-
Beim Bearbeiten der Datei
build.gradle
kam es manchmal zu einer spürbaren Verzögerung zwischen dem Eingeben eines Zeichens und dem Erscheinen des Zeichens auf dem Bildschirm. -
Bei einigen Projekten mit einer großen Anzahl von Modulen oder externen Abhängigkeiten sind beim Dexing Build-Fehler aufgetreten. Die folgende Fehlermeldung wurde angezeigt:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- Bei der Berechnung der D8-Haupt-DEX-Liste wurden einige reflektierende Aufrufe nicht berücksichtigt.
Dieses Update enthält auch Änderungen, die die Ausführung von Lint-Prüfungen über Gradle in einigen Szenarien deutlich beschleunigen.
3.1.1 (April 2018)
Dieses Update für Android Studio 3.1 enthält Korrekturen für die folgenden Fehler:
-
In einigen Fällen wurde die Gradle-basierte Aufgabe „Make“ beim ersten Öffnen eines in Android Studio 3.0 erstellten Projekts in Android Studio 3.1 aus dem Bereich Before launch (Vor dem Start) in Run/Debug Configurations (Konfigurationen für Ausführung/Fehlerbehebung) entfernt. Das hatte zur Folge, dass Projekte nicht erstellt wurden, wenn auf die Schaltfläche Ausführen oder Debuggen geklickt wurde. Das wiederum führte zu Fehlern wie der Bereitstellung falscher APKs und Abstürzen bei der Verwendung von Instant Run.
Um dieses Problem zu beheben, wird in Android Studio 3.1.1 der Gradle-basierte Make-Task der Ausführungskonfiguration für Projekte hinzugefügt, in denen dieser Eintrag fehlt. Diese Änderung erfolgt nach der ersten Gradle-Synchronisierung, wenn das Projekt geladen wird.
- Der Debugger stürzte beim Debuggen eines Layouts mit einem Textfeld ab, wenn das erweiterte Profiling aktiviert war.
- Android Studio ist eingefroren, nachdem Sie auf Build-Varianten geklickt haben.
- AAR-Dateien (Android-Archive) wurden zweimal extrahiert, einmal während der Gradle-Synchronisierung und einmal während des Gradle-Build-Prozesses.
- Bei einigen aus SVG-Dateien importierten Vektordrawables fehlten Elemente.
-
Die Warnung zur Einstellung der
compile
-Abhängigkeitskonfiguration wurde aktualisiert und enthält jetzt bessere Anleitungen zurimplementation
- undapi
-Konfiguration. Weitere Informationen zur Migration von dercompile
-Konfiguration finden Sie in der Dokumentation zu den neuen Abhängigkeitskonfigurationen.
Programmieren/IDE
IntelliJ 2017.3.3
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA bis zur Version 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse des Kontrollflusses für Sammlungen und Strings, eine verbesserte Ableitung der Nullable-Eigenschaft, neue Schnellkorrekturen und vieles mehr.
Weitere Informationen finden Sie in den JetBrains-Versionshinweisen für IntelliJ IDEA-Versionen 2017.2 und 2017.3 sowie in den JetBrains-Versionshinweisen für Bugfix-Updates.
Verbesserungen bei der SQL-Bearbeitung mit Room
Wenn Sie die Room-Datenbankbibliothek verwenden, profitieren Sie von mehreren Verbesserungen bei der SQL-Bearbeitung:
- Die Codevervollständigung innerhalb von
Query
versteht SQL-Tabellen (Entitäten), Spalten, Abfrageparameter, Aliase, Joins, Unterabfragen und WITH-Klauseln. - Die SQL-Syntaxhervorhebung funktioniert jetzt.
- Sie können mit der rechten Maustaste auf einen Tabellennamen in SQL klicken und ihn umbenennen. Dadurch wird auch der entsprechende Java- oder Kotlin-Code neu geschrieben, z. B. der Rückgabetyp der Abfrage. Das Umbenennen funktioniert auch in die andere Richtung. Wenn Sie also eine Java-Klasse oder ein Java-Feld umbenennen, wird der entsprechende SQL-Code neu geschrieben.
- SQL-Verwendungen werden angezeigt, wenn Sie Verwendungen suchen verwenden (Rechtsklick und Auswahl von Verwendungen suchen im Kontextmenü).
- Wenn Sie zur Deklaration einer SQL-Entität in Java- oder Kotlin-Code wechseln möchten, halten Sie die Strg-Taste (Befehlstaste auf dem Mac) gedrückt, während Sie auf die Entität klicken.
Informationen zur Verwendung von SQL mit Room finden Sie unter Daten mit Room in einer lokalen Datenbank speichern.
Aktualisierungen der Datenbindung
Dieses Update enthält mehrere Verbesserungen für die Datenbindung:
-
Sie können jetzt ein
LiveData
-Objekt als beobachtbares Feld in Data Binding-Ausdrücken verwenden. Die KlasseViewDataBinding
enthält jetzt eine neuesetLifecycle()
-Methode, mit der SieLiveData
-Objekte beobachten können. -
Die Klasse
ObservableField
kann jetzt andereObservable
-Objekte in ihrem Konstruktor akzeptieren. -
Sie können eine Vorschau eines neuen inkrementellen Compilers für Ihre Data Binding-Klassen aufrufen. Weitere Informationen zu diesem neuen Compiler und eine Anleitung zum Aktivieren finden Sie unter Data Binding Compiler V2.
Der neue Compiler bietet unter anderem folgende Vorteile:
-
ViewBinding
-Klassen werden vom Android-Plug-in für Gradle vor dem Java-Compiler generiert. - Die generierten Bindungsklassen von Bibliotheken bleiben beim Kompilieren der App erhalten und werden nicht jedes Mal neu generiert. Dies kann die Leistung bei Projekten mit mehreren Modulen erheblich verbessern.
-
Compiler und Gradle
D8 ist der Standard-DEX-Compiler
Der D8-Compiler wird jetzt standardmäßig zum Generieren von DEX-Bytecode verwendet.
Der neue DEX-Compiler bietet mehrere Vorteile, darunter:
- Schnellere Dexing-Vorgänge
- Geringere Speichernutzung
- Verbesserte Codegenerierung (bessere Registerzuweisung, intelligentere Stringtabellen)
- Bessere Debugging-Funktionen beim Durchlaufen von Code
Sie müssen keine Änderungen an Ihrem Code oder Ihrem Entwicklungs-Workflow vornehmen, um diese Vorteile zu nutzen, es sei denn, Sie haben den D8-Compiler zuvor manuell deaktiviert.
Wenn Sie in Ihrer gradle.properties
für android.enableD8
den Wert false
festgelegt haben, löschen Sie das Flag oder legen Sie es auf true
fest:
android.enableD8=true
Weitere Informationen finden Sie unter Neuer DEX-Compiler.
Inkrementelles Desugaring
Bei Projekten, die Java 8-Sprachfunktionen verwenden, ist die inkrementelle Desugarisierung standardmäßig aktiviert, was die Build-Zeiten verbessern kann.
Beim Desugaring wird syntaktischer Zucker in eine Form umgewandelt, die der Compiler effizienter verarbeiten kann.
Sie können das inkrementelle Desugaring deaktivieren, indem Sie Folgendes in der Datei gradle.properties
Ihres Projekts angeben:
android.enableIncrementalDesugaring=false
Vereinfachtes Ausgabefenster
Die Gradle Console wurde durch das Fenster Build ersetzt, das die Tabs Sync und Build enthält.
Weitere Informationen zur Verwendung des neuen, vereinfachten Fensters Build finden Sie unter Build-Prozess überwachen.
Batch-Updates und Indexierungskonkurrenz
Die Gradle-Synchronisierung und die IDE-Indexierung sind jetzt viel effizienter. Dadurch wird die Zeit reduziert, die für viele redundante Indexierungsvorgänge benötigt wird.
C++ und LLDB
Wir haben viele Verbesserungen bei Qualität und Leistung in den Phasen für Codierung, Synchronisierung, Erstellung und Debugging der C++-Entwicklung vorgenommen. Hier einige der Verbesserungen:
-
Wenn Sie mit großen C++-Projekten arbeiten, sollten Sie eine deutliche Verbesserung bei der Reduzierung der Zeit für das Erstellen von Symbolen feststellen. Auch die Synchronisierungszeit für große Projekte wurde erheblich verkürzt.
-
Die Leistung beim Erstellen und Synchronisieren mit CMake wurde durch eine aggressivere Wiederverwendung von im Cache gespeicherten Ergebnissen verbessert.
-
Durch das Hinzufügen von Formattern („Pretty Printers“) für weitere C++-Datenstrukturen ist die LLDB-Ausgabe leichter lesbar.
-
LLDB funktioniert jetzt nur noch mit Android 4.1 (API-Level 16) und höher.
Hinweis:Das native Debugging mit Android Studio 3.0 oder höher funktioniert nicht unter 32-Bit-Windows. Wenn Sie die 32‑Bit-Version von Windows verwenden und nativen Code debuggen müssen, verwenden Sie Android Studio 2.3.
Kotlin
Kotlin auf Version 1.2.30 aktualisiert
Android Studio 3.1 enthält Kotlin-Version 1.2.30.
Kotlin-Code wird jetzt mit dem Befehlszeilen-Lint-Check analysiert.
Wenn Sie Lint über die Befehlszeile ausführen, werden jetzt auch Ihre Kotlin-Klassen analysiert.
Für jedes Projekt, für das Sie „lint“ ausführen möchten, muss das Maven-Repository von Google in der Datei build.gradle
auf oberster Ebene enthalten sein. Das Maven-Repository ist bereits in Projekten enthalten, die in Android Studio 3.0 und höher erstellt wurden.
Tools zur Leistungssteigerung
Native C++-Prozesse mit dem CPU Profiler analysieren
Der CPU Profiler enthält jetzt eine Standardkonfiguration zum Aufzeichnen von Stichproben-Traces der nativen Threads Ihrer App. Sie können diese Konfiguration verwenden, indem Sie Ihre App auf einem Gerät mit Android 8.0 (API-Ebene 26) oder höher bereitstellen und dann im Drop-down-Menü für Aufzeichnungskonfigurationen des CPU Profiler die Option Sampled (Native) auswählen. Danach können Sie wie gewohnt einen Trace aufzeichnen und untersuchen.
Sie können Standardeinstellungen wie das Sampling-Intervall ändern, indem Sie eine Aufzeichnungskonfiguration erstellen.
Wenn Sie wieder Java-Threads erfassen möchten, wählen Sie entweder die Konfiguration Sampled (Java) oder Instrumented (Java) aus.
CPU-Traces, Ergebnisse der Arbeitsspeicherzuweisung und Heap-Dumps filtern
Der CPU Profiler und der Memory Profiler enthalten eine Suchfunktion, mit der Sie Ergebnisse aus der Aufzeichnung eines Methodentraces, von Speicherzuweisungen oder eines Heap-Dumps filtern können.

Klicken Sie zum Suchen oben rechts im Bereich auf Filtern
, geben Sie Ihre Anfrage ein und drücken Sie die Eingabetaste.
Tipp:Sie können das Suchfeld auch durch Drücken von Strg + F (Befehlstaste + F auf einem Mac) öffnen.
Im CPU Profiler werden auf dem Tab Flame Chart (Flammendiagramm) Callstacks, die Methoden enthalten, die mit Ihrer Suchanfrage in Verbindung stehen, hervorgehoben und auf die linke Seite des Diagramms verschoben.
Weitere Informationen zum Filtern nach Methoden-, Klassen- oder Paketnamen finden Sie unter Methoden-Traces aufzeichnen und prüfen.
Tab „Anfrage“ im Network Profiler
Der Network Profiler enthält jetzt den Tab Request (Anfrage), auf dem Details zu Netzwerkanfragen während des ausgewählten Zeitraums angezeigt werden. In früheren Versionen lieferte der Network Profiler nur Informationen zu Netzwerkantworten.
Thread-Ansicht im Network Profiler
Nachdem Sie im Network Profiler einen Teil der Zeitachse ausgewählt haben, können Sie einen der folgenden Tabs auswählen, um weitere Details zur Netzwerkaktivität in diesem Zeitraum zu sehen:
- Verbindungsansicht: Bietet dieselben Informationen wie frühere Versionen von Android Studio. Es werden Dateien aufgeführt, die während des ausgewählten Zeitabschnitts der Zeitachse über alle CPU-Threads Ihrer App hinweg gesendet oder empfangen wurden. Für jede Anfrage können Sie die Größe, den Typ, den Status und die Übertragungsdauer prüfen.
- Thread-Ansicht: Zeigt die Netzwerkaktivität der einzelnen CPU-Threads Ihrer App an. In dieser Ansicht können Sie sehen, welche Threads Ihrer App für die einzelnen Netzwerkanfragen verantwortlich sind.

Layout Inspector
Der Layout Inspector hat neue Funktionen erhalten, darunter einige, die zuvor von den eingestellten Tools Hierarchy Viewer und Pixel Perfect bereitgestellt wurden:
- Schaltflächen zum Zoomen und Tastenkombinationen zum Navigieren und Untersuchen von Layouts
- Referenzraster-Overlay
- Möglichkeit, ein Referenzbild zu laden und als Overlay zu verwenden (nützlich, um Ihr Layout mit einem UI-Mockup zu vergleichen)
- Unterbaum rendern, um eine Ansicht in einem komplexen Layout zu isolieren

Layout Editor
Die Palette im Layout-Editor wurde in vielerlei Hinsicht verbessert:
- Neuorganisation der Kategorien für Ansichten und Layouts.
- Neue Kategorie Allgemein für Ansichten und Layouts, die Sie mit dem Befehl Favorit ergänzen können.
- Verbesserte Suche nach Ansichten und Layouts.
- Neue Befehle zum Öffnen der Dokumentation für eine bestimmte Ansicht oder ein bestimmtes Layout-Element.
Mit dem neuen Befehl Ansicht konvertieren im Komponentenbaum oder im Designeditor können Sie eine Ansicht oder ein Layout in einen anderen Ansichts- oder Layouttyp konvertieren.
Sie können jetzt ganz einfach Einschränkungen für Elemente in der Nähe der ausgewählten Ansicht erstellen. Verwenden Sie dazu die neuen Schaltflächen „Verbindung erstellen“
im Ansicht-Inspector oben im Fenster Attribute.
Laufen und Instant Run
Das Verhalten der Option Use same selection for future launches (Dieselbe Auswahl für zukünftige Starts verwenden) im Dialogfeld Select deployment target (Bereitstellungsziel auswählen) wurde vereinheitlicht. Wenn die Option Use same selection (Dieselbe Auswahl verwenden) aktiviert ist, wird das Dialogfeld Select deployment target (Bereitstellungsziel auswählen) nur beim ersten Ausführen des Befehls Run (Ausführen) geöffnet, bis das ausgewählte Gerät nicht mehr verbunden ist.
Wenn Sie auf ein Gerät mit Android 8.0 (API-Level 26) oder höher ausgerichtet sind, können mit Instant Run Änderungen an Ressourcen bereitgestellt werden, ohne dass die Anwendung neu gestartet werden muss. Dies ist möglich, da die Ressourcen in einem Split-APK enthalten sind.
Emulator
Informationen zu den Neuerungen und Änderungen im Emulator seit Android Studio 3.0 finden Sie in den Versionshinweisen zum Android-Emulator von Version 27.0.2 bis Version 27.1.12.
Zu den wichtigsten Verbesserungen gehören:
- Quick Boot-Snapshots zum Speichern des Emulatorstatus und für einen schnelleren Start. Mit dem Befehl Save now (Jetzt speichern) kann ein benutzerdefinierter Startstatus gespeichert werden.
- Fensterloser Emulatorbildschirm
- System-Images für Android 8.0 (API-Level 26), Android 8.1 (API-Level 27) und Android P Developer Preview.
Verbesserungen der Benutzeroberfläche und der Nutzerfreundlichkeit
Weitere Tooltips, Tastenkombinationen und hilfreiche Meldungen
Wir haben an vielen Stellen in Android Studio Tooltips und hilfreiche Meldungs-Overlays hinzugefügt.
Wenn Sie Tastenkombinationen für viele Befehle sehen möchten, halten Sie den Mauszeiger einfach über eine Schaltfläche, bis die Kurzinfo angezeigt wird.
„Tools“ > „Android“-Menü entfernt
Das Menü Tools > Android wurde entfernt. Befehle, die sich zuvor in diesem Menü befanden, wurden verschoben.
- Viele Befehle wurden direkt unter das Menü Tools verschoben.
- Der Befehl Sync project with gradle files (Projekt mit Gradle-Dateien synchronisieren) wurde in das Menü File (Datei) verschoben.
- Der Befehl Device Monitor wurde wie unten beschrieben entfernt.
Device Monitor über die Befehlszeile verfügbar
In Android Studio 3.1 spielt der Device Monitor eine geringere Rolle als bisher. In vielen Fällen werden die Funktionen, die über den Device Monitor verfügbar waren, jetzt von neuen und verbesserten Tools bereitgestellt.
Eine Anleitung zum Aufrufen des Device Monitors über die Befehlszeile und Details zu den über den Device Monitor verfügbaren Tools finden Sie in der Device Monitor-Dokumentation.