App erstellen und ausführen

Wenn Sie sehen möchten, wie Ihre App auf einem Gerät aussieht und funktioniert, müssen Sie sie erstellen und ausführen. In Android Studio werden neue Projekte eingerichtet, damit Sie Ihre App mit nur wenigen Klicks auf einem virtuellen oder physischen Gerät bereitstellen können.

In diesem Überblick geht es darum, wie Sie mit Android Studio Ihre App erstellen und ausführen, um sie zu testen und zu debuggen. Informationen dazu, wie Sie mit Android Studio Ihre App so erstellen, dass sie für Nutzer veröffentlicht werden kann, finden Sie unter App für die Veröffentlichung für Nutzer erstellen. Weitere Informationen zum Verwalten und Anpassen Ihres Builds mit oder ohne Android Studio finden Sie unter Build konfigurieren.

Einfaches Erstellen und Ausführen

So erstellen und führen Sie Ihre App aus:

  1. Wählen Sie in der Symbolleiste im Menü „Ausführungskonfigurationen“ Ihre App aus.
  2. Wählen Sie im Menü „Zielgerät“ das Gerät aus, auf dem Sie Ihre App ausführen möchten.

    Menü „Zielgerät“

    Wenn Sie keine Geräte konfiguriert haben, müssen Sie entweder ein Android-virtuelles Gerät erstellen, um den Android-Emulator zu verwenden, oder ein physisches Gerät verbinden.

  3. Klicken Sie auf Ausführen .

Android Studio warnt Sie, wenn Sie versuchen, Ihr Projekt auf einem Gerät zu starten, das mit einem Fehler oder einer Warnung verknüpft ist. Anhand von Symbolen und Stiländerungen wird zwischen Fehlern (Geräteauswahlen, die zu einer fehlerhaften Konfiguration führen) und Warnungen (Geräteauswahlen, die zu unerwartetem Verhalten führen können, aber trotzdem ausgeführt werden können) unterschieden.

Build-Prozess überwachen

Wenn Sie Details zum Buildprozess aufrufen möchten, wählen Sie Ansicht > Toolfenster > Build aus oder klicken Sie in der Toolfensterleiste auf Build . Im Toolfenster Build werden die Aufgaben angezeigt, die Gradle zum Erstellen Ihrer App ausführt (siehe Abbildung 1).

Abbildung 1: Das Toolfenster Build in Android Studio
  1. Tab „Synchronisieren“:Hier werden die Aufgaben angezeigt, die Gradle ausführt, um die Projektdateien zu synchronisieren. Ähnlich wie auf dem Tab Build-Ausgabe können Sie bei einem Synchronisierungsfehler Elemente im Baum auswählen, um weitere Informationen zum Fehler zu erhalten. Außerdem wird eine Zusammenfassung der Auswirkungen von Downloads angezeigt, um festzustellen, ob sich Abhängigkeitsdownloads negativ auf Ihren Build auswirken.
  2. Tab „Build-Ausgabe“:Hier werden die Aufgaben, die Gradle ausführt, als Baum angezeigt. Jeder Knoten steht dabei entweder für eine Buildphase oder eine Gruppe von Aufgabenabhängigkeiten. Wenn Sie Build- oder Kompilierungsfehler erhalten, prüfen Sie den Baum und wählen Sie ein Element aus, um die Fehlerausgabe zu lesen, wie in Abbildung 2 dargestellt.
    Abbildung 2. Prüfen Sie den Tab Build-Ausgabe auf Fehlermeldungen.
  3. Tab „Build Analyzer“:Hier finden Sie Informationen zur Build-Leistungsanalyse. Weitere Informationen finden Sie unter Fehlerbehebung bei der Build-Leistung mit dem Build Analyzer.
  4. Neu starten:Die letzte Build-Aktion wird noch einmal ausgeführt. Wenn Sie zuletzt Build > Selected Module Make (Erstellen > Ausgewähltes Modul erstellen) ausgeführt haben, wird das aktuelle Modul erstellt. Wenn Sie zuletzt Build > Make Project ausgeführt haben, werden Zwischenbuilddateien für alle Module in Ihrem Projekt generiert.
  5. Filter:Hiermit werden Warnungen, Aufgaben oder beides herausgefiltert, die erfolgreich abgeschlossen wurden. So lassen sich Probleme in der Ausgabe leichter finden.

Wenn für Ihre Buildvarianten Produktvarianten verwendet werden, ruft Gradle auch Aufgaben zum Erstellen dieser Produktvarianten auf. Wenn Sie eine Liste aller verfügbaren Build-Aufgaben aufrufen möchten, klicken Sie auf Ansicht > Toolfenster > Gradle oder auf Gradle in der Toolfensterleiste.

Wenn während des Build-Prozesses ein Fehler auftritt, empfiehlt Gradle möglicherweise Befehlszeilenoptionen wie --stacktrace oder --debug, mit denen Sie das Problem beheben können. So verwenden Sie Befehlszeilenoptionen für Ihren Build-Prozess:

  1. Öffnen Sie das Dialogfeld Einstellungen oder Bevorzugte Einstellungen:
    • Wählen Sie unter Windows oder Linux in der Menüleiste Datei > Einstellungen aus.
    • Wählen Sie unter macOS in der Menüleiste Android Studio > Preferences (Einstellungen) aus.
  2. Gehen Sie zu Build, Execution, Deployment > Compiler.
  3. Geben Sie im Textfeld neben Befehlszeilenoptionen die Befehlszeilenoptionen ein.
  4. Klicken Sie auf OK, um die Änderungen zu speichern und das Fenster zu schließen.

Gradle wendet diese Befehlszeilenoptionen an, wenn Sie das nächste Mal versuchen, Ihre App zu erstellen.

Erweiterte Funktionen zum Erstellen und Ausführen

Die Standardmethode zum Erstellen und Ausführen Ihrer App in Android Studio sollte für das Testen einer einfachen App ausreichen. Sie können diese Build- und Ausführungsfunktionen jedoch auch für erweiterte Anwendungsfälle verwenden:

  • Wenn Sie Ihre App im Debug-Modus bereitstellen möchten, klicken Sie auf Fehler beheben . Wenn Sie Ihre App im Debug-Modus ausführen, können Sie Haltepunkte in Ihrem Code festlegen, Variablen prüfen, Ausdrücke zur Laufzeit auswerten und Debug-Tools ausführen. Weitere Informationen finden Sie unter Anwendung debuggen.

  • Wenn Sie eine größere, komplexere App haben, verwenden Sie „Änderungen anwenden“, anstatt auf Ausführen zu klicken. Das spart Zeit, da Sie Ihre App nicht jedes Mal neu starten müssen, wenn Sie eine Änderung bereitstellen möchten. Weitere Informationen zu „Änderungen anwenden“ finden Sie im Abschnitt Inkrementelle Bereitstellung mit „Änderungen anwenden“.

  • Wenn Sie Jetpack Compose verwenden, ist Live Edit eine experimentelle Funktion, mit der Sie Composables in Echtzeit aktualisieren können, ohne noch einmal auf Ausführen klicken zu müssen. So können Sie sich mit minimaler Unterbrechung auf das Schreiben von UI-Code konzentrieren. Weitere Informationen finden Sie im Abschnitt Live-Bearbeitung (experimentell).

  • Wenn Sie eine App mit mehreren Buildvarianten oder ‑versionen haben, können Sie im Toolfenster Buildvarianten auswählen, welche Buildvariante bereitgestellt werden soll. Weitere Informationen zum Ausführen einer bestimmten Buildvariante finden Sie im Abschnitt Buildvariante ändern.

  • Sie können die Ausführungs-/Debug-Konfiguration ändern, um die Optionen für die App-Installation, -Bereitstellung und -Tests zu optimieren. Weitere Informationen zum Erstellen benutzerdefinierter Konfigurationen für Ausführung und Fehlerbehebung finden Sie im Abschnitt Konfigurationen für Ausführung und Fehlerbehebung erstellen.

  • Wir empfehlen die Verwendung von Android Studio für Ihre Entwicklungsanforderungen. Sie können Ihre App aber auch über die Befehlszeile auf einem virtuellen oder physischen Gerät bereitstellen. Weitere Informationen finden Sie unter App über Befehlszeile erstellen.

Mit „Änderungen übernehmen“ schrittweise bereitstellen

In Android Studio 3.5 und höher können Sie mit „Änderungen anwenden“ Code- und Ressourcenänderungen an die laufende App senden, ohne die App neu starten zu müssen – und in einigen Fällen auch ohne die aktuelle Aktivität neu starten zu müssen. So können Sie steuern, inwieweit Ihre App neu gestartet wird, wenn Sie kleine, inkrementelle Änderungen bereitstellen und testen möchten, während der aktuelle Status des Geräts beibehalten wird.

„Änderungen anwenden“ verwendet Funktionen in der JVMTI-Implementierung von Android, die auf Geräten mit Android 8.0 (API-Level 26) oder höher unterstützt werden. Weitere Informationen zur Funktionsweise von „Änderungen anwenden“ finden Sie unter Android Studio Project Marble: Apply Changes.

Voraussetzungen

Die Aktion „Änderungen anwenden“ ist nur verfügbar, wenn Sie die folgenden Bedingungen erfüllen:

  • Sie erstellen das APK Ihrer App mit einer Debug-Buildvariante.
  • Sie stellen Ihre App auf einem Zielgerät oder Emulator bereit, auf dem Android 8.0 (API-Level 26) oder höher ausgeführt wird.

„Änderungen übernehmen“ verwenden

Mit den folgenden Optionen können Sie Ihre Änderungen auf einem kompatiblen Gerät bereitstellen:

Änderungen anwenden und Aktivität neu starten Symbol „Änderungen anwenden und Aktivität neu starten“: Es wird versucht, sowohl die Ressourcen- als auch die Codeänderungen anzuwenden, indem die Aktivität neu gestartet wird, die App jedoch nicht. Sie können diese Option in der Regel verwenden, wenn Sie Code im Body einer Methode oder eine vorhandene Ressource geändert haben.

Sie können diese Aktion auch ausführen, indem Sie Strg + Alt + F10 drücken (Strg + Befehlstaste + Umschalttaste + R unter macOS).

Codeänderungen anwenden Symbol „Codeänderungen anwenden“ : Es wird versucht, nur Ihre Codeänderungen anzuwenden, ohne etwas neu zu starten. Sie können diese Option im Allgemeinen verwenden, wenn Sie Code im Body einer Methode geändert, aber keine Ressourcen geändert haben. Wenn Sie sowohl Code als auch Ressourcen geändert haben, verwenden Sie stattdessen Änderungen anwenden und Aktivität neu starten.

Sie können diese Aktion auch ausführen, indem Sie Strg + F10 drücken (Strg + Befehlstaste + R unter macOS).

Ausführen : Alle Änderungen werden bereitgestellt und die App wird neu gestartet. Verwenden Sie diese Option, wenn die Änderungen nicht mit einer der Optionen unter „Änderungen anwenden“ angewendet werden können. Weitere Informationen zu den Arten von Änderungen, für die ein App-Neustart erforderlich ist, finden Sie im Abschnitt Einschränkungen beim Anwenden von Änderungen.

Ausführungs-Fallback für „Änderungen anwenden“ aktivieren

Wenn Sie auf Änderungen anwenden und Aktivität neu starten oder Codeänderungen anwenden klicken, erstellt Android Studio ein neues APK und ermittelt, ob die Änderungen angewendet werden können. Wenn die Änderungen nicht angewendet werden können und das Anwenden der Änderungen fehlschlägt, werden Sie in Android Studio aufgefordert, Symbol „Ausführen“Ihre App stattdessen noch einmal zu ausführen.

Wenn Sie nicht jedes Mal dazu aufgefordert werden möchten, können Sie Android Studio so konfigurieren, dass Ihre App automatisch neu ausgeführt wird, wenn Änderungen nicht angewendet werden können. So aktivieren Sie dieses Verhalten:

  1. Öffnen Sie das Dialogfeld Einstellungen oder Einstellungen:

    • Wählen Sie unter Windows oder Linux im Menü Datei > Einstellungen aus.
    • Wählen Sie unter macOS im Menü Android Studio > Einstellungen aus.
  2. Gehen Sie zu Build, Execution, Deployment > Deployment.

  3. Klicken Sie die Kästchen an, um den automatischen Ausführungs-Fallback für eine oder beide Aktionen „Änderungen anwenden“ zu aktivieren.

  4. Klicken Sie auf OK.

Plattformabhängige Änderungen

Einige Funktionen von „Änderungen anwenden“ sind von bestimmten Versionen der Android-Plattform abhängig. Damit diese Änderungen angewendet werden können, muss Ihre App auf einem Gerät bereitgestellt werden, auf dem diese Android-Version oder eine höhere installiert ist. Für das Hinzufügen einer Methode ist beispielsweise Android 11 oder höher erforderlich.

Einschränkungen bei der Funktion „Änderungen anwenden“

Mit „Änderungen anwenden“ soll der App-Bereitstellungsprozess beschleunigt werden. Es gibt jedoch einige Einschränkungen bei der Verwendung.

Codeänderungen, die einen App-Neustart erfordern

Einige Code- und Ressourcenänderungen können erst nach dem Neustart der App angewendet werden. Dazu gehören:

  • Felder hinzufügen oder entfernen
  • Methode entfernen
  • Methodensignaturen ändern
  • Modifikatoren von Methoden oder Klassen ändern
  • Klassenübernahme ändern
  • Werte in Enumerationen ändern
  • Ressourcen hinzufügen oder entfernen
  • App-Manifest ändern
  • Native Bibliotheken (SO-Dateien) ändern
Bibliotheken und Plug-ins

Einige Bibliotheken und Plug-ins nehmen automatisch Änderungen an den Manifestdateien Ihrer App oder an Ressourcen vor, auf die im Manifest verwiesen wird. Diese automatischen Updates können die Funktion „Änderungen anwenden“ auf folgende Weise beeinträchtigen:

  • Wenn eine Bibliothek oder ein Plug-in Änderungen am Manifest Ihrer App vornimmt, können Sie „Änderungen anwenden“ nicht verwenden. Sie müssen die App neu starten, damit die Änderungen übernommen werden.
  • Wenn eine Bibliothek oder ein Plug-in Änderungen an den Ressourcendateien Ihrer App vornimmt, können Sie Codeänderungen anwenden Symbol „Codeänderungen anwenden“ nicht verwenden. Sie müssen Änderungen anwenden und Aktivität neu starten Symbol „Änderungen anwenden und Aktivität neu starten“ verwenden (oder die App neu starten), damit die Änderungen übernommen werden.

Um diese Einschränkungen zu vermeiden, deaktivieren Sie alle automatischen Updates für Ihre Debug-Buildvarianten.

Beispielsweise aktualisiert Firebase Crashlytics App-Ressourcen bei jedem Build mit einer eindeutigen Build-ID. Dadurch können Sie Codeänderungen anwenden Symbol „Codeänderungen anwenden“nicht verwenden und müssen die Aktivitäten Ihrer App neu starten, um die Änderungen zu sehen. Deaktivieren Sie dieses Verhalten, um Codeänderungen anwenden zusammen mit Crashlytics in Ihren Debug-Builds zu verwenden.

Code, der direkt auf Inhalte in einem installierten APK verweist

Wenn Ihr Code direkt auf Inhalte aus dem APK Ihrer App verweist, das auf dem Gerät installiert ist, kann dieser Code nach dem Klicken auf Codeänderungen anwenden Symbol „Codeänderungen anwenden“ zu Abstürzen oder Fehlfunktionen führen. Dieses Verhalten tritt auf, weil das zugrunde liegende APK auf dem Gerät während der Installation ersetzt wird, wenn Sie auf Codeänderungen anwenden klicken. In diesen Fällen können Sie stattdessen auf Änderungen anwenden und Aktivität neu starten Symbol „Änderungen anwenden und Aktivität neu starten“ oder Ausführen Symbol „Ausführen“ klicken.

Wenn bei der Verwendung von „Änderungen anwenden“ weitere Probleme auftreten, melden Sie bitte einen Fehler.

Live Edit

„Live Edit“ ist eine experimentelle Funktion in Android Studio, mit der Sie Composeables in Emulatoren und auf physischen Geräten in Echtzeit aktualisieren können. Mit dieser Funktion werden Kontextwechsel zwischen dem Schreiben und dem Erstellen Ihrer App minimiert, sodass Sie sich länger ungestört auf das Schreiben von Code konzentrieren können.

Weitere Informationen zu LiveEdit

Build-Variante ändern

Wenn Sie auf Ausführen UI-Schaltfläche klicken, wird in Android Studio standardmäßig die Debugversion Ihrer App erstellt, die nur während der Entwicklung verwendet werden soll.

So ändern Sie die Buildvariante, die in Android Studio verwendet wird:

  • Wählen Sie im Menü Build > Build-Variante auswählen aus.
  • Wählen Sie im Menü Ansicht > Toolfenster > Build-Varianten aus.
  • Klicken Sie in der Toolfensterleiste auf den Tab Build-Varianten.

Bei Projekten ohne nativen/C++-Code enthält der Bereich Build-Varianten zwei Spalten: Modul und Aktive Build-Variante. Der Wert Active Build Variant (Aktive Build-Variante) für das Modul bestimmt, welche Build-Variante die IDE auf Ihrem verbundenen Gerät bereitstellt und im Editor angezeigt wird.

Abbildung 9. Der Bereich Buildvarianten enthält zwei Spalten für Projekte ohne nativen/C++-Code.

Wenn Sie zwischen Varianten wechseln möchten, klicken Sie auf die Zelle Aktive Build-Variante für ein Modul und wählen Sie die gewünschte Variante aus der Liste aus.

Bei Projekten mit nativem/C++-Code enthält der Bereich Build-Varianten drei Spalten:

  • Modul
  • Aktive Build-Variante
  • Aktiver ABI

Der Wert Active Build Variant (Aktive Build-Variante) für das Modul bestimmt die Build-Variante, die die IDE auf Ihrem Gerät bereitstellt und im Editor sichtbar ist. Bei nativen Modulen wird mit dem Wert Active ABI die ABI festgelegt, die der Editor verwendet. Er hat jedoch keine Auswirkungen auf die Bereitstellung.

Abbildung 10. Im Bereich Build-Varianten wird die Spalte Aktiver ABI für Projekte mit nativem/C++-Code hinzugefügt.

Wenn Sie die Buildvariante oder das ABI ändern möchten, klicken Sie auf die Zelle für die Spalte Aktive Buildvariante oder Aktives ABI und wählen Sie die gewünschte Variante oder das gewünschte ABI aus der Liste aus. Nachdem Sie die Auswahl geändert haben, wird Ihr Projekt automatisch von der IDE synchronisiert. Wenn Sie eine der Spalten für ein App- oder Bibliotheksmodul ändern, wird die Änderung auf alle abhängigen Zeilen angewendet.

Neue Projekte werden standardmäßig mit zwei Buildvarianten eingerichtet: einer Debug- und einer Release-Variante. Sie müssen die Release-Variante erstellen, um Ihre App für die öffentliche Veröffentlichung vorzubereiten. Wenn Sie andere Varianten Ihrer App mit unterschiedlichen Funktionen oder Geräteanforderungen definieren möchten, können Sie zusätzliche Buildvarianten definieren.

Konflikte im Android Studio-Dialogfeld „Build-Varianten“

Im Android Studio-Dialogfeld Build-Varianten werden möglicherweise Fehlermeldungen angezeigt, die auf Konflikte zwischen Build-Varianten hinweisen, z. B.:

Im Fenster „Build-Variante“ werden Fehler bei Variantenkonflikten angezeigt

Dieser Fehler weist nicht auf ein Build-Problem mit Gradle hin. Das bedeutet, dass die Android Studio IDE Symbole zwischen den Varianten der ausgewählten Module nicht auflösen kann.

Wenn Sie beispielsweise ein Modul M1 haben, das von der Variante v1 des Moduls M2 abhängt, für M2 aber in der IDE die Variante v2 ausgewählt ist, gibt es in der IDE nicht aufgelöste Symbole. Angenommen, M1 hängt von einer Klasse ab, die nur in v1 verfügbar ist. Wenn v2 ausgewählt ist, ist diese Klasse der IDE nicht bekannt. Daher kann der Klassenname nicht aufgelöst werden und es werden Fehler im Code des M1-Moduls angezeigt.

Diese Fehlermeldungen werden angezeigt, weil die IDE Code für mehrere Varianten nicht gleichzeitig laden kann. Auf den Build Ihrer App hat die in diesem Dialogfeld ausgewählte Variante jedoch keine Auswirkungen, da Gradle Ihre App mit dem in Ihren Gradle-Build-Rezepten angegebenen Quellcode erstellt und nicht auf der Grundlage dessen, was derzeit in der IDE geladen ist.

Ausführungs-/Fehlerbehebungskonfiguration ändern

Wenn Sie Ihre App zum ersten Mal ausführen, verwendet Android Studio eine Standardausführungskonfiguration. In der Ausführungskonfiguration wird unter anderem festgelegt, ob Ihre App aus einem APK oder einem Android App Bundle bereitgestellt werden soll, sowie das auszuführende Modul, das bereitzustellende Paket, die zu startende Aktivität, das Zielgerät, die Emulatoreinstellungen und die Logcat-Optionen.

Die Standardkonfiguration für die Ausführung/Fehlerbehebung erstellt ein APK, startet die Standardprojektaktivität und verwendet das Dialogfeld Bereitstellungsziel auswählen für die Auswahl des Zielgeräts. Wenn die Standardeinstellungen für Ihr Projekt oder Modul nicht geeignet sind, können Sie die Ausführungs-/Debug-Konfiguration anpassen oder eine neue auf Projekt-, Standard- und Modulebene erstellen.

Wenn Sie eine Ausführungs-/Fehlerbehebungskonfiguration bearbeiten möchten, wählen Sie Ausführen > Konfigurationen bearbeiten aus. Weitere Informationen finden Sie unter Ausführungs-/Debug-Konfigurationen erstellen und bearbeiten.