Bekannte Probleme mit Android Studio und dem Android Gradle-Plug-in

Auf dieser Seite werden bekannte Probleme mit Android Studio Ladybug und dem Android Gradle-Plug-in 8.7.0 aufgeführt. Wenn ein Problem auftritt, das hier nicht aufgeführt ist, melden Sie den Fehler.

Auf die Vorabversion umstellen:Mit jeder Version von Android Studio und dem Android Gradle-Plug-in sollen Stabilität und Leistung verbessert und neue Funktionen hinzugefügt werden. Wenn Sie die Vorteile der kommenden Releases schon jetzt nutzen möchten, laden Sie Android Studio Preview herunter und installieren Sie es.

Bekannte Probleme mit Android Studio

In diesem Abschnitt werden bekannte Probleme in der neuesten stabilen Version von Android Studio beschrieben.

Die Aktivität wird bei Geräten oder Emulatoren mit API-Level 35 nicht durch „Änderungen anwenden und Aktivität neu starten“ neu gestartet

Wenn Sie Codeänderungen mit „Änderungen anwenden und Aktivität neu starten“ auf einem API 35-Gerät bereitstellen, wird die App nicht neu gestartet und Sie sehen keine Auswirkungen der Änderungen. Wenn Sie die Anwendung noch einmal ausführen, sehen Sie die Auswirkungen der Codeänderungen. Unser Team untersucht das Problem derzeit.

Im Firebase Assistant-Fenster wird eine Fehlermeldung angezeigt

Wenn im Firebase Assistant-Fenster (im Hauptmenü unter „Tools“ > „Firebase“) eine Fehlermeldung angezeigt wird, löschen Sie die Caches und starten Sie Android Studio neu, um den Fehler zu beheben.

Ansicht mit dem Layout-Inspektor nicht isolieren

Die Möglichkeit, eine Ansicht mit dem eingebetteten Layout-Inspektor zu isolieren, ist vorübergehend nicht verfügbar. Wir arbeiten daran, dieses Problem in einer zukünftigen Version zu beheben.

Nicht alle Compose-Knoten können mit dem Layout-Inspektor geprüft werden

Wenn Sie feststellen, dass nicht alle Compose-Knoten mit dem Layout-Inspektor geprüft werden können, liegt das wahrscheinlich an einem Fehler, der in Compose-Version 1.5.0-alpha04 behoben wurde. Wenn dieses Problem auftritt, führen Sie ein Upgrade auf Compose Version 1.5.0-alpha04 oder höher aus.

Fehler beim Rendern der Vorschau für das Verfassen

Wenn Sie in Android Studio Chipmunk im Bereich „Probleme“ java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner oder java.lang.ClassNotFoundException: androidx.savedstate.R$id sehen, müssen Sie in Ihrem Modul eine debugImplementation-Abhängigkeit von androidx.lifecycle:lifecycle-viewmodel-savedstate angeben.

Wenn im Bereich „Probleme“ java.lang.NoSuchFieldError: view_tree_lifecycle_owner angezeigt wird, müssen Sie in Ihrem Modul eine debugImplementation-Abhängigkeit von androidx.lifecycle:lifecycle-runtime angeben.

Wenn im Bereich „Probleme“ java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer oder java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener angezeigt wird, müssen Sie in Ihrem Modul eine debugImplementation-Abhängigkeit von androidx.customview:customview-poolingcontainer angeben.

Fehler bei Verwendung verschiedener Passwörter für Schlüssel und Schlüsselspeicher

Ab Version 4.2 wird Android Studio jetzt mit JDK 11 ausgeführt. Dieses Update führt zu einer Änderung des Verhaltens im Zusammenhang mit Signaturschlüsseln.

Wenn Sie Build > Signiertes Bundle / APK generieren aufrufen und versuchen, die App-Signatur für ein App-Bundle oder ein APK zu konfigurieren, kann das Eingeben verschiedener Passwörter für den Schlüssel und den Schlüsselspeicher zu folgendem Fehler führen:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

Um dieses Problem zu umgehen, geben Sie dasselbe Passwort für den Schlüssel und den Schlüsselspeicher ein.

Android Studio startet nach der Installation von Version 4.2 nicht

Studio versucht, vorherige .vmoptions zu importieren und zu bereinigen, damit sie mit dem von JDK 11 verwendeten Garbage Collector funktionieren. Wenn dieser Vorgang fehlschlägt, wird die IDE möglicherweise nicht für bestimmte Nutzer gestartet, die benutzerdefinierte VM-Optionen in der Datei .vmoptions festgelegt haben.

Um dieses Problem zu umgehen, empfehlen wir, benutzerdefinierte Optionen in .vmoptions mit dem Zeichen „#“ zu kommentieren. Die Datei .vmoptions befindet sich an den folgenden Speicherorten:

Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

Wenn Studio auch nach dieser Umgehung nicht startet, sieh dir die Informationen unter Studio startet nach dem Upgrade nicht an.

Apps, die Database Inspector verwenden, stürzen im Android 11-Emulator ab

Apps, die den Datenbankinspektor verwenden, können beim Ausführen im Android 11-Emulator abstürzen. In logcat wird dann ein Fehler wie der folgende angezeigt:

 Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

Führen Sie zum Beheben dieses Problems ein Upgrade Ihres Android 11-Emulators auf Version 9 oder höher durch. Gehen Sie dazu zu Tools > SDK Manager. Klicken Sie auf dem Tab SDK-Plattformen das Kästchen Paketdetails anzeigen an und wählen Sie Version 9 oder höher des Android 11-Emulators aus.

Studio startet nach dem Upgrade nicht

Wenn Studio nach einem Upgrade nicht gestartet wird, kann das an einer ungültigen Android Studio-Konfiguration liegen, die aus einer früheren Version von Android Studio importiert wurde, oder an einem inkompatiblen Plug-in. Als Problemumgehung können Sie je nach Android Studio-Version und Betriebssystem das folgende Verzeichnis löschen (oder zu Sicherungszwecken umbenennen) und Android Studio neu starten. Dadurch wird Android Studio auf den Standardzustand zurückgesetzt und alle Drittanbieter-Plug-ins werden entfernt.

Für Android Studio 4.1 und höher:

  • Windows:%APPDATA%\Google\AndroidStudio<version>
    Beispiel: C:\Users\your_user_name\AppData\Roaming\Google\AndroidStudio4.1

  • macOS:~/Library/Application Support/Google/AndroidStudio<version>
    Beispiel: ~/Library/Application Support/Google/AndroidStudio4.1

  • Linux:~/.config/Google/AndroidStudio<version> und ~/.local/share/Google/AndroidStudio<version>
    Beispiel: ~/.config/Google/AndroidStudio4.1 und ~/.local/share/Google/AndroidStudio4.1

Für Android Studio 4.0 und niedriger:

  • Windows:%HOMEPATH%\.AndroidStudio<version>\config
    Beispiel: C:\Users\your_user_name\.AndroidStudio3.6\config

  • macOS:~/Library/Preferences/AndroidStudio<version>
    Beispiel: ~/Library/Preferences/AndroidStudio3.6

  • Linux: ~/.AndroidStudio<version>/config
    Beispiel: ~/.AndroidStudio3.6/config

Das Konfigurationsverzeichnis für Canary- und Betaversionen von Android Studio ist PreviewX.Y anstelle von X.Y für die <version>. Bei Android Studio 4.1-Canary-Builds wird beispielsweise AndroidStudioPreview4.1 anstelle des Verzeichnisses AndroidStudio4.1 verwendet, das für Release-Kandidaten und stabile Releases verwendet wird.

Kompilierungsproblem in Kotlin-Multiplattform-Projekten

Aufgrund fehlender Symbole können im Kotlin-MPP-Code Kompilierungsfehler auftreten. Durch ein Upgrade des Kotlin-Plug-ins auf Version 1.4 sollte dieses Problem behoben werden.

Konflikte bei der Tastenzuordnung unter Linux

Unter Linux stehen bestimmte Tastenkürzel in Konflikt mit den standardmäßigen Linux-Tastenkürzeln und denen beliebter Fenstermanager wie KDE und GNOME. Diese Tastenkürzel funktionieren in Android Studio möglicherweise nicht wie erwartet.

Weitere Informationen zu diesem Problem (einschließlich potenzieller Problemumgehungen) finden Sie im IntelliJ-Bug-Tracker.

Kleiner Text in der Benutzeroberfläche unter ChromeOS

Unter ChromeOS erscheint Text möglicherweise viel kleiner als in früheren Releases. So umgehen Sie das Problem:

  1. Öffnen Sie das Fenster Einstellungen, indem Sie auf Datei > Einstellungen klicken.
  2. Gehen Sie zu Darstellung und Verhalten > Darstellung.
  3. Wählen Sie Benutzerdefinierte Schriftart verwenden aus.
  4. Die Schrift vergrößern
  5. Gehen Sie im Fenster Einstellungen zu Editor > Schriftart.
  6. Die Schrift vergrößern
  7. Klicken Sie auf OK.

Code bearbeiten

In diesem Abschnitt werden bekannte Probleme im Zusammenhang mit dem Code-Editor beschrieben.

Eingefrorene Tastatureingabe – „iBus“-Probleme unter Linux

Es gibt einige bekannte Interaktionen zwischen dem iBus-Daemon unter Linux und Android Studio. In einigen Fällen reagiert die IDE nicht mehr auf die Tastatureingabe oder es werden zufällige Zeichen eingegeben. Dieser Fehler wird durch eine fehlende Synchronisierung zwischen iBus und XLib + AWT ausgelöst und wurde bereits an JetBrains und iBus weitergeleitet. Es gibt derzeit drei Möglichkeiten, dieses Problem zu umgehen:

  • Problemumgehung 1:iBus in den synchronen Modus zwingen Führen Sie vor dem Starten von Android Studio den folgenden Befehl in der Befehlszeile aus:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • Umgehungslösung 2:Deaktivieren Sie die iBus-Eingabe in Android Studio. Wenn Sie die iBus-Eingabe nur für Android Studio deaktivieren möchten, führen Sie in der Befehlszeile Folgendes aus:
    $ XMODIFIERS= ./bin/studio.sh
    Mit dieser Problemumgehung werden nur die Eingabemethoden für Android Studio deaktiviert, nicht die von anderen Anwendungen, die Sie möglicherweise ausführen. Wenn Sie den Daemon neu starten, während Android Studio geöffnet ist (z. B. durch Ausführen von ibus-daemon -rd), werden die Eingabemethoden für alle anderen Anwendungen deaktiviert. Außerdem kann die JVM von Android Studio durch einen Segmentierungsfehler abstürzen.
  • Umgehungslösung 3:Prüfen Sie die Tastenkürzel, um sicherzustellen, dass die Tastenkombination für die Nächste Eingabe nicht auf „Strg + Leertaste“ festgelegt ist, da dies auch die Tastenkombination für den Codeabschluss in Android Studio ist. In Ubuntu 14.04 (Trusty) ist Super + Leertaste die Standardverknüpfung, aber die Einstellungen aus früheren Versionen sind möglicherweise noch vorhanden. Wenn Sie die Tastenkürzel überprüfen möchten, geben Sie ibus-setup in der Befehlszeile ein, um das IBus-Fenster mit den Einstellungen zu öffnen. Setzen Sie unter Tastenkombinationen ein Häkchen bei Nächste Eingabemethode. Wenn die Tastenkombination auf „Strg + Leertaste“ festgelegt ist, ändern Sie sie zu „Super + Leertaste“ oder einer anderen Tastenkombination Ihrer Wahl.

Projektkonfiguration

In diesem Abschnitt werden bekannte Probleme im Zusammenhang mit der Projektkonfiguration und der Gradle-Synchronisierung beschrieben.

Gradle-Synchronisierung fehlgeschlagen: Broken Pipe

Das Problem besteht darin, dass der Gradle-Daemon versucht, IPv4 anstelle von IPv6 zu verwenden.

  • Problemumgehung 1: Fügen Sie unter Linux Folgendes in ~/.profile oder ~/.bash_profile ein:
    export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
  • Problemumgehung 2: Ändern Sie in der vmoptions-Datei von Android Studio die Zeile -Djava.net.preferIPv4Addresses=true in -Djava.net.preferIPv6Addresses=true. Weitere Informationen finden Sie im Netzwerk-IPv6-Nutzerhandbuch.

Fehler „peer not authenticated“ (Peer nicht authentifiziert) bei der Gradle-Synchronisierung oder im SDK-Manager

Die Grundursache dieser Fehler ist ein fehlendes Zertifikat in $JAVA_HOME/jre/lib/certificates/cacerts. So beheben Sie diese Fehler:

  • Wenn du dich hinter einem Proxy befindest, versuche, eine direkte Verbindung herzustellen. Wenn die direkte Verbindung funktioniert, müssen Sie möglicherweise das Zertifikat des Proxyservers mit keytool zur Datei „cacerts“ hinzufügen, um eine Verbindung über den Proxy herzustellen.
  • Installieren Sie ein unterstütztes, unverändertes JDK neu. Es gibt ein bekanntes Problem, das Ubuntu-Nutzer betrifft und zu einer leeren /etc/ssl/certs/java/cacerts führt. Führen Sie den folgenden Befehl in der Befehlszeile aus, um dieses Problem zu umgehen:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

Bereitstellung

In diesem Abschnitt werden bekannte Probleme beschrieben, die beim Bereitstellen Ihrer App auf einem verbundenen Gerät auftreten können.

[Nur macOS] Incrementale Updates werden aufgrund eines Problems mit der Gradle-Dateiüberwachung bei Projekten, die unter /System/Volumes/Data gespeichert sind, nicht angewendet.

Das Gradle-Problem 18149 wirkt sich auf Android-Gradle-Plug-ins ab Version 7.0 aus, da für diese Gradle-Version 7.0 oder höher erforderlich ist. Ab Gradle 7.0 ist die Dateiüberwachung standardmäßig aktiviert. Wenn Sie unter macOS arbeiten und Ihr Projekt unter /System/Volumes/Data gespeichert ist, werden Dateiänderungen durch die Gradle-Dateiüberwachung nicht richtig erfasst. Dadurch erkennt das Build-System keine Dateiänderungen und aktualisiert die APKs nicht. Der Code für die inkrementelle Bereitstellung führt dann nichts aus, da der lokale APK-Status mit dem auf dem Gerät identisch ist.

Um dieses Problem zu umgehen, sollten Sie das Verzeichnis Ihres Projekts in Ihr Nutzerverzeichnis verschieben, also unter /Users/username. Das Build-System wird dann über die Gradle-Dateiüberwachung ordnungsgemäß über Dateiänderungen informiert und inkrementelle Änderungen werden erfolgreich angewendet.

Android-Emulator HAXM unter macOS High Sierra

Der Android-Emulator unter macOS High Sierra (10.13) benötigt HAXM 6.2.1 oder höher für optimale Kompatibilität und Stabilität mit macOS. Unter macOS 10.13 ist die Installation von Kernelerweiterungen wie HAXM jedoch etwas aufwendiger. Sie müssen die Installation der Kernelerweiterung selbst manuell zulassen:

  1. Versuchen Sie zuerst, die neueste Version von HAXM über den SDK-Manager zu installieren.
  2. Gehen Sie unter macOS zu Systemeinstellungen > Sicherheit und Datenschutz.
  3. Wenn Sie die Meldung Laden der Systemsoftware des Entwicklers „Intel Corporation Apps“ wurde blockiert sehen, klicken Sie auf Zulassen:

Weitere Informationen und Problemumgehungen finden Sie auf der Apple-Webseite und im Problem 62395878.

Änderungen übernehmen

In diesem Abschnitt werden bekannte Probleme im Zusammenhang mit Änderungen anwenden beschrieben.

Neuer App-Name nicht angewendet

Wenn Sie Ihre App umbenennen und dann versuchen, diese Änderung anzuwenden, wird der aktualisierte Name möglicherweise nicht übernommen. Klicken Sie auf Ausführen Symbol „Ausführen“, um Ihre App neu bereitzustellen und die Änderungen zu sehen.

Problem in der Android-Laufzeit führt zu Fehler

Wenn Sie ein Gerät mit Android 8.0 oder 8.1 verwenden, werden beim Anwenden bestimmter Änderungen möglicherweise Meldungen vom Typ „VERIFICATION_ERROR“ angezeigt (insbesondere bei Verwendung von Kotlin). Diese Meldung wird durch ein Problem mit der Android Runtime verursacht, das in Android 9.0 und höher behoben wurde. Auch wenn das Problem dazu führt, dass die Änderungen nicht angewendet werden können, können Sie Ihre App noch einmal ausführen Symbol „Ausführen“, um die Änderungen zu sehen. Wir empfehlen jedoch, das Gerät auf Android 9.0 oder höher zu aktualisieren.

Debugging und Tests

In diesem Abschnitt werden bekannte Probleme beim Debuggen und Testen Ihrer App beschrieben.

JUnit-Tests fehlen Ressourcen im Klassenpfad, wenn sie über Android Studio ausgeführt werden

Wenn Sie bestimmte Ressourcenordner in Ihren Java-Modulen haben, werden diese Ressourcen beim Ausführen von Tests aus der IDE nicht gefunden. Das Ausführen von Tests mit Gradle über die Befehlszeile funktioniert. Sie können die Gradle-check-Aufgabe auch über die IDE ausführen. Weitere Informationen finden Sie unter Problem 64887.

Dieses Problem tritt auf, weil ab IntelliJ 13 nur noch ein einzelner Ordner als Klassenpfad zulässig ist. Der Builder von IntelliJ kopiert alle Ressourcen in diesen Build-Ordner, Gradle jedoch nicht.

  • Problemumgehung 1: Führen Sie die Gradle-check-Aufgabe aus der IDE aus, anstatt einen Unit-Test auszuführen.
  • Problemumgehung 2: Aktualisieren Sie Ihr Build-Script, um Ressourcen manuell in den Build-Ordner zu kopieren. Weitere Informationen finden Sie im Kommentar 13.

Beim Ausführen von JUnit-Tests wird der Code möglicherweise zweimal kompiliert

Beim Erstellen eines neuen Projekts wird die JUnit-Konfiguration der Vorlage möglicherweise mit zwei Schritten „Vor dem Start“ erstellt: „Make“ und „Gradle-aware Make“. Diese Konfiguration wird dann auf alle erstellten JUnit-Ausführungskonfigurationen angewendet.

  • Klicken Sie auf Ausführen > Konfigurationen bearbeiten, um das Problem für das aktuelle Projekt zu beheben. Ändern Sie die Standard-JUnit-Konfiguration so, dass nur der Gradle-kompatible Make-Schritt enthalten ist.
  • Wenn Sie das Problem für alle zukünftigen Projekte beheben möchten, klicken Sie auf Datei > Projekt schließen. Daraufhin wird der Willkommensbildschirm angezeigt. Klicken Sie dann auf Konfigurieren > Projektstandardeinstellungen > Ausführungskonfigurationen und ändern Sie die JUnit-Konfiguration so, dass nur der Gradle-kompatible Make-Schritt enthalten ist.

Einige Konfigurationen für Testläufe funktionieren nicht

Nicht alle Ausführungskonfigurationen, die beim Klicken mit der rechten Maustaste auf eine Testmethode verfügbar sind, sind gültig. Insbesondere sind die folgenden Konfigurationen ungültig:

  • Gradle-Ausführungskonfigurationen (mit dem Gradle-Logo als Symbol) funktionieren nicht.
  • JUnit-Ausführungskonfigurationen (mit einem Symbol ohne das grüne Android-Symbol) gelten nicht für Instrumentierungstests, die nicht auf der lokalen JVM ausgeführt werden können.
Android Studio merkt sich auch die Ausführungskonfiguration, die in einem bestimmten Kontext erstellt wurde (z. B. durch Klicken mit der rechten Maustaste auf eine bestimmte Klasse oder Methode), und bietet in Zukunft nicht die Möglichkeit, in einer anderen Konfiguration auszuführen. Klicken Sie zum Beheben dieses Problems auf Ausführen > Konfigurationen bearbeiten und entfernen Sie die fälschlicherweise erstellten Konfigurationen.

Java-Bruchstellen beim Debuggen von nativem Code hinzufügen

Wenn Ihre App an einem Haltepunkt in Ihrem nativen Code angehalten ist, erkennen die Debugger Auto und Dual möglicherweise nicht sofort neue Java-Haltepunkte, die Sie setzen. Um dieses Problem zu vermeiden, fügen Sie Java-Bruchstellen entweder vor Beginn einer Debug-Sitzung oder während die App an einem Java-Bruchpunkt angehalten ist hinzu. Weitere Informationen finden Sie unter Problem 229949.

Aus dem nativen Debugger heraustreten

Wenn Sie mit dem Auto- oder Dual-Debugger Java- und nativen Code debuggen und aus Ihrem Java-Code in eine native Funktion wechseln (z. B. wenn der Debugger die Ausführung an einer Zeile in Ihrem Java-Code anhält, die eine native Funktion aufruft, und Sie auf Step Into klicken), und Sie zum Java-Code zurückkehren möchten, klicken Sie auf Programm fortsetzen (anstelle von Step Out oder Step Over ). Der App-Prozess wird weiterhin angehalten. Klicken Sie auf dem Tab your-module-java auf Programm fortsetzen , um ihn fortzusetzen. Weitere Informationen finden Sie unter Problem 224385.

Nativer Debugger hängt beim Laden von Bibliotheken

Wenn Sie den nativen Debugger nach dem Upgrade auf Android Studio 4.2 oder höher zum ersten Mal verwenden, reagiert er möglicherweise nicht mehr, während Bibliotheken vom Android-Gerät geladen werden. Dieses Problem tritt auch dann auf, wenn Sie den Debugger beenden und neu starten. Löschen Sie den LLDB-Cache unter $USER/.lldb/module-cache/, um das Problem zu beheben.

Nativer Debugger stürzt mit der Meldung „Debuggerprozess beendet mit dem Exit-Code 127“ ab

Dieser Fehler tritt auf Linux-basierten Plattformen beim Starten des nativen Debuggers auf. Dies bedeutet, dass eine der vom nativen Debugger benötigten Bibliotheken nicht auf dem lokalen System installiert ist. Der Name der fehlenden Bibliothek ist möglicherweise bereits in der Datei idea.log gedruckt. Falls nicht, können Sie über ein Terminal zum Installationsverzeichnis von Android Studio wechseln und die Befehlszeile bin/lldb/bin/LLDBFrontend --version ausführen, um herauszufinden, welche Bibliotheken fehlen. In der Regel ist die fehlende Bibliothek ncurses5, da einige neuere Linux-Distributionen bereits auf ncurses6 umgestellt haben.

Profiler

In diesem Abschnitt werden bekannte Probleme mit den Profilern beschrieben.

Nativer Speicher-Profiler: Profiling nicht beim Start der App verfügbar

Der native Speicher-Profiler ist beim Starten der App derzeit nicht verfügbar. Diese Option wird in einer künftigen Version verfügbar sein.

Als Problemumgehung können Sie den eigenständigen Perfetto-Befehlszeilen-Profiler verwenden, um Startprofile zu erfassen.

Zeitüberschreitungsfehler im CPU-Profiler

Wenn Sie die Konfigurationen Java-Methoden beispielhaft ausführen oder Java-Methoden erfassen auswählen, kann im Android Studio-CPU-Profiler die Fehlermeldung „Aufzeichnung konnte nicht beendet werden“ angezeigt werden. Häufig handelt es sich dabei um Zeitüberschreitungsfehler, insbesondere wenn in der idea.log-Datei die folgende Fehlermeldung angezeigt wird:

Wait for ART trace file timed out

Die Zeitüberschreitungsfehler treten häufiger bei getrackten Methoden als bei Stichprobenmethoden und bei längeren Aufzeichnungen als bei kürzeren Aufzeichnungen auf. Als vorübergehende Lösung können Sie kürzere Aufnahmen ausprobieren, um zu sehen, ob der Fehler dadurch verschwindet.

Wenn beim Profiler Zeitüberschreitungen auftreten, erstellen Sie bitte einen Fehlerbericht. Geben Sie dabei das Modell Ihres Geräts und alle relevanten Einträge aus idea.log und logcat an.

ADB-Ausnahme beim Debuggen oder Erstellen von Profilen

Wenn Sie die Plattformtools 29.0.3 verwenden, funktionieren die native Fehlerbehebung und die Android Studio-Profiler möglicherweise nicht richtig. Wenn Sie Hilfe > Protokoll anzeigen auswählen, wird in der Datei idea.log möglicherweise entweder „AdbCommandRejectedException“ oder „Failed to connect port“ angezeigt. Durch ein Upgrade der Plattformtools auf Version 29.0.4 oder höher werden beide Probleme behoben.

So aktualisieren Sie die Plattformtools:

  1. Öffnen Sie den SDK-Manager in Android Studio, indem Sie auf Tools > SDK-Manager oder in der Symbolleiste auf SDK-Manager klicken.
  2. Klicken Sie das Kästchen neben Android SDK-Plattformtools an. In der linken Spalte sollte ein Downloadsymbol  angezeigt werden.
  3. Klicken Sie auf Übernehmen oder OK.

Plug-in verhindert, dass das Fenster „Build-Ausgabe“ funktioniert

Mit dem Plug-in CMake Simple Highlighter werden Inhalte nicht im Fenster „Build-Ausgabe“ angezeigt. Der Build wird ausgeführt und der Tab „Build-Ausgabe“ wird angezeigt, aber es wird keine Ausgabe gedruckt (Problem #204791544).

Installationsreihenfolge verhindert Start

Wenn Sie eine neuere Version von Android Studio vor einer älteren Version installieren, kann es sein, dass die ältere Version nicht gestartet werden kann. Wenn Sie beispielsweise zuerst die Canary-Version von Android Studio installieren und dann versuchen, die stabile Version zu installieren und zu starten, wird die stabile Version möglicherweise nicht gestartet. In solchen Fällen müssen Sie den Cache leeren, damit die stabile (ältere) Version gestartet wird. Unter macOS löschen Sie den Cache, indem Sie das Verzeichnis Library/ApplicationSupport/Google/AndroidStudioversion_number löschen. Unter Windows können Sie den Cache mit der Datenträgerbereinigung leeren.

Espresso Test Recorder funktioniert nicht mit Compose

Der Espresso Test Recorder funktioniert nicht mit Projekten, die Compose enthalten. Informationen zum Erstellen von UI-Tests für Projekte, die Compose enthalten, finden Sie unter Compose-Layout testen.

Tastenkombination für Logcat kollidiert mit Tastaturlayouts, die nicht auf Englisch sind

Wenn Sie ein Tastaturlayout verwenden, das nicht auf Englisch basiert, kann eine Standard-Logcat-Tastaturkürzel mit dem Layout in Konflikt stehen und Sie daran hindern, bestimmte Zeichen beim Bearbeiten von Text in Android Studio einzugeben. Löschen Sie die Konflikt erzeugende Logcat-Tastenzuordnung oder ordnen Sie sie neu zu, um dieses Problem zu umgehen. Wenn Sie die Logcat-Tastenkombinationen in Android Studio bearbeiten möchten, gehen Sie zu Android Studio > Einstellungen > Tastenkombination und suchen Sie in der Liste der Tastenkombinationen nach Logcat. Weitere Informationen finden Sie unter Problem 263475910.

Dieses Problem wird durch das Entfernen der Logcat-Verknüpfung in Android Studio Electric Eel Patch 1 behoben.

Bekannte Probleme mit dem Android Gradle-Plug-in

In diesem Abschnitt werden bekannte Probleme in der neuesten stabilen Version des Android Gradle-Plug-ins beschrieben.

Nicht alle Abhängigkeiten von Bibliotheken für dynamische Funktionen werden mit Lint geprüft

Wenn Sie „lint“ mit checkDependencies = true aus einem App-Modul ausführen, werden die Abhängigkeiten von Bibliotheken für dynamische Funktionen nur dann geprüft, wenn sie auch App-Abhängigkeiten sind (Problem #191977888). Als Behelfslösung kann die Lint-Aufgabe auf diesen Bibliotheken ausgeführt werden.

Signaturdatei mit Zeilenumbruchzeichen

Die JAR-Signatur (V1-Schema) unterstützt keine Dateinamen, die Wagenrücklaufzeichen enthalten (Problem #63885809).

Das Ändern von Variantenausgaben zum Zeitpunkt des Builds funktioniert möglicherweise nicht

Die Verwendung der Variant API zum Manipulieren von Variantenausgaben funktioniert mit dem neuen Plug-in nicht. Sie funktioniert jedoch weiterhin für einfache Aufgaben wie das Ändern des APK-Namens während der Buildzeit, wie unten gezeigt:

// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time—
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}.apk"
    }
}

Komplexere Aufgaben, die den Zugriff auf outputFile-Objekte erfordern, funktionieren jedoch nicht mehr. Das liegt daran, dass variantenspezifische Aufgaben in der Konfigurationsphase nicht mehr erstellt werden. Dadurch weiß das Plug-in nicht im Voraus, welche Ausgabewerte es hat. Die Konfigurationszeit ist jedoch kürzer.

manifestOutputFile ist nicht mehr verfügbar

Die Methode processManifest.manifestOutputFile() ist nicht mehr verfügbar. Beim Aufrufen wird folgender Fehler angezeigt:

A problem occurred configuring project ':myapp'.
   Could not get unknown property 'manifestOutputFile' for task
   ':myapp:processDebugManifest' of type
   com.android.build.gradle.tasks.ProcessManifest.

Anstatt manifestOutputFile() aufzurufen, um die Manifestdatei für jede Variante abzurufen, können Sie processManifest.manifestOutputDirectory() aufrufen, um den Pfad des Verzeichnisses zurückzugeben, das alle generierten Manifeste enthält. Sie können dann ein Manifest suchen und Ihre Logik darauf anwenden. Im folgenden Beispiel wird der Versionscode im Manifest dynamisch geändert:

android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        output.processManifest.doLast {
            // Stores the path to the maifest.
            String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml"
            // Stores the contents of the manifest.
            def manifestContent = file(manifestPath).getText()
            // Changes the version code in the stored text.
            manifestContent = manifestContent.replace('android:versionCode="1"',
                    String.format('android:versionCode="%s"', generatedCode))
            // Overwrites the manifest with the new text.
            file(manifestPath).write(manifestContent)
        }
    }
}

Probleme mit der AGP 7.3.0-AIDL-Unterstützung und Kotlin 1.7.x

Wenn Sie AGP 7.3.0 mit KAPT in Kotlin 1.7.x verwenden, werden die AIDL-Quellsätze für bestimmte Buildvarianten entfernt. Sie können weiterhin die anderen AIDL-Quellsätze verwenden, einschließlich der von main/, Buildtypen, Produktvarianten und Kombinationen von Produktvarianten. Wenn Sie die variantenspezifischen AIDL-Quellsätze verwenden müssen, verwenden Sie weiterhin Kotlin 1.6.21.

Bekannte Probleme behoben

In diesem Abschnitt werden bekannte Probleme beschrieben, die in einer aktuellen Version behoben wurden. Wenn eines dieser Probleme auftritt, sollten Sie Android Studio auf die neueste stabile Version oder Vorabversion aktualisieren.

In Android Studio 2021.1.1 behoben

  • Fehlende Lint-Ausgabe: Wenn die Lint-Aufgabe UP-TO-DATE ist, wird keine Lint-Textausgabe an stdout ausgegeben (Problem #191897708). Korrigiert in AGP 7.1.0-alpha05.
  • Probleme beim Unit-Testen eines App-Projekts, das das Hilt-Plug-in verwendet: Der Klassenpfad für den Unit-Test enthält die nicht instrumentierten App-Klassen. Das bedeutet, dass Hilt die App-Klassen nicht für die Abhängigkeitsinjektion instrumentiert, wenn Unit-Tests ausgeführt werden (Problem #213534628). In AGP 7.1.1 behoben.

In Android Studio 2020.3.1 behoben

  • Lint-Ausnahmen in Kotlin-Projekten:In Kotlin-Projekten, in denen checkDependencies = true festgelegt ist, können Nullzeigerausnahmen oder Fehler auftreten (Problem #158777858).

In Android Studio 4.2 behoben

  • IDE friert unter macOS Big Sur ein:Android Studio 4.1 friert möglicherweise ein, wenn Sie ein Dialogfeld öffnen.

In Android Studio 4.1 behoben

  • Neustarten, um Arbeitsspeichereinstellungen aus der vorherigen Version der IDE anzuwenden:Nachdem Sie Android Studio aktualisiert haben, müssen Sie es neu starten, um Arbeitsspeichereinstellungen anzuwenden, die aus einer früheren Version der IDE migriert wurden.
  • Manifest-Klasse mit benutzerdefinierten Berechtigungsstrings wird nicht mehr standardmäßig generiert:Wenn Sie die Klasse generieren möchten, legen Sie android.generateManifestClass = true fest.

In Android Studio 3.6 behoben

  • APK-Installationsfehler unter LineageOS: Die Bereitstellung Ihrer App auf Geräten mit bestimmten Versionen von LineageOS oder CyanogenMod kann fehlschlagen und eine INSTALL_PARSE_FAILED_NOT_APK-Ausnahme auslösen.

    In Android Studio 3.6 Beta 1 und höher verarbeitet die IDE diese Ausnahme, indem sie eine vollständige App-Installation durchführt, wenn Sie Ihre App auf LineageOS- oder CyanogenMod-Geräten bereitstellen. Dies kann zu längeren Bereitstellungszeiten führen.

In Android Studio 3.5.2 behoben

  • Fehlerhafter XML-Codestil: Beim Bearbeiten von XML-Code hat die IDE einen falschen Codestil angewendet, als Sie in der Menüleiste Code > Code neu formatieren ausgewählt haben.

In Android Studio 3.3.1 behoben

  • Fehlermeldungen wegen fehlendem Arbeitsspeicher beim Scannen C++-basierter Projekte: Wenn Gradle ein Projekt mit C++-Code an mehr als einem Speicherort auf demselben Laufwerk scannt, werden alle Verzeichnisse unter dem ersten gemeinsamen Verzeichnis gescannt. Das Scannen einer großen Anzahl von Verzeichnissen und Dateien kann zu Speicherfehlern führen.

    Weitere Informationen zu diesem Problem finden Sie im Artikel zum Fehler.