Fehler bei vordefinierten APKs beheben

Mit Android Studio 3.0 und höher können Sie ein Profil für APKs erstellen und Fehler beheben, bei denen die Fehlerbehebung aktiviert ist, ohne sie aus einem Android Studio-Projekt erstellen zu müssen.

So beginnen Sie mit dem Debugging für ein APK:

  1. Klicken Sie auf dem Android Studio-Begrüßungsbildschirm auf Profil oder APK debuggen.

    Wenn du bereits ein Projekt geöffnet hast, klicke in der Menüleiste auf Datei > Profil oder APK debuggen.

  2. Wähle im daraufhin angezeigten Dialogfeld das APK aus, das du in Android Studio importieren möchtest.

  3. Klicke auf OK.

In Android Studio werden dann die entpackten APK-Dateien angezeigt, ähnlich wie in Abbildung 1. Dies ist kein vollständig dekompilierter Satz von Dateien, stellt aber SMALI-Dateien für eine lesbarere Version der DEX-Dateien bereit.

Vordefinierte APKs in Android Studio importieren

Abbildung 1: Vordefinierte APKs in Android Studio importieren

In der Ansicht Android im Projektbereich können Sie die folgenden Inhalte Ihres APK prüfen:

  • APK-Datei:Doppelklicken Sie auf das APK, um das APK Analyzer zu öffnen.
  • manifests:Enthält die App-Manifeste, die aus dem APK extrahiert werden.
  • java:Kotlin- oder Java-Code, den Android Studio aus den DEX-Dateien Ihres APK in SMALI-Dateien zerlegt. Jede SMALI-Datei in diesem Verzeichnis entspricht einer Kotlin- oder Java-Klasse.
  • cpp:Wenn Ihre App nativen Code enthält, enthält dieses Verzeichnis die nativen Bibliotheken (SO-Dateien) Ihres APK.
  • External Libraries (Externe Bibliotheken): Enthält das Android SDK.

Sie können den Android-Profiler verwenden, um die Leistung Ihrer Anwendung zu testen.

Wenn Sie Fehler im Kotlin- oder Java-Code Ihrer Anwendung beheben möchten, müssen Sie die Kotlin- oder Java-Quellen anhängen und den Kotlin- oder Java-Quelldateien Haltepunkte hinzufügen. Um Fehler in Ihrem nativen Code zu beheben, müssen Sie die Symbole zum Debuggen von nativem Code anhängen.

Kotlin- oder Java-Quellen anhängen

Standardmäßig extrahiert Android Studio Kotlin- oder Java-Code aus Ihrem APK und speichert ihn als SMALI-Dateien. Wenn Sie Fehler in Kotlin- oder Java-Code mithilfe von Haltepunkten beheben möchten, müssen Sie die IDE auf die Kotlin- oder Java-Quelldateien verweisen, die den SMALI-Dateien entsprechen, für die Sie eine Fehlerbehebung durchführen möchten.

So hängen Sie Kotlin- oder Java-Quellen an:

  1. Doppelklicken Sie in der Ansicht Android im Bereich Project (Projekt) auf eine SMALI-Datei. Nach dem Öffnen der Datei wird im Editor ein Banner angezeigt, in dem Sie aufgefordert werden, die Kotlin- oder Java-Quelle auszuwählen: Banner zum Anhängen von Quellen
  2. Klicken Sie im Banner im Editorfenster auf Kotlin-/Java-Quellen anhängen....
  3. Rufen Sie das Verzeichnis mit den Kotlin- oder Java-Quelldateien der App auf und klicken Sie auf Öffnen.

Im Fenster Projekt ersetzt Android Studio SMALI-Dateien durch die entsprechenden Kotlin- oder Java-Quelldateien. In Android Studio werden außerdem innere Klassen automatisch eingefügt. Sie können jetzt Haltepunkte hinzufügen und Fehler in Ihrer Anwendung beheben.

Symbole zum Debuggen von nativem Code anhängen

Wenn dein APK native Bibliotheken (SO-Dateien) enthält, die keine Fehlerbehebungssymbole enthalten, wird in Android Studio ein Banner angezeigt, das dem in Abbildung 1 ähnelt. Sie können weder den nativen Code des APK debuggen noch Haltepunkte verwenden, ohne debug-fähige native Bibliotheken anzuhängen.

So hängen Sie debug-fähige native Bibliotheken an:

  1. Falls noch nicht geschehen, laden Sie den NDK und die Tools herunter.
  2. Klicken Sie in der Ansicht Android im Verzeichnis cpp im Fenster Projekt auf eine native Bibliotheksdatei, die keine Symbole zur Fehlerbehebung enthält.

    Im Editor wird eine Tabelle mit allen ABIs angezeigt, die Ihr APK unterstützt.

  3. Klicken Sie rechts oben im Editorfenster auf Hinzufügen.

  4. Rufen Sie das Verzeichnis auf, das die debugfähigen nativen Bibliotheken enthält, die Sie anhängen möchten, und klicken Sie auf OK.

Wenn das APK und die debugfähigen nativen Bibliotheken mit einer anderen Workstation erstellt wurden, müssen Sie auch Pfade zu den lokalen Fehlerbehebungssymbolen angeben. Gehen Sie dazu so vor:

  1. Sie können fehlenden Symbolen zur Fehlerbehebung lokale Pfade hinzufügen. Dazu bearbeiten Sie das Feld in der Spalte Lokale Pfade im Abschnitt Pfadzuordnungen des Editorfensters (siehe Abbildung 2).

    In den meisten Fällen muss nur der Pfad zu einem Stammordner angegeben werden. Android Studio prüft automatisch Unterverzeichnisse, um zusätzliche Quellen zuzuordnen. Android Studio ordnet Pfade einem Remote-NDK außerdem automatisch Ihrem lokalen NDK-Download zu.

  2. Klicken Sie im Bereich Pfadzuordnungen des Editorfensters auf Änderungen übernehmen.

Pfade zu lokalen Fehlerbehebungssymbolen angeben

Abbildung 2: Lokale Pfade zur Fehlerbehebung von Symbolen.

Die nativen Quelldateien werden im Fenster Projekt angezeigt. Öffnen Sie diese nativen Quelldateien, um Haltepunkte hinzuzufügen und Fehler in der Anwendung zu beheben. Wenn Sie die Zuordnungen entfernen möchten, klicken Sie im Bereich Pfadzuordnungen des Editorfensters auf Löschen.

Bekanntes Problem:Beim Anhängen von Symbolen zum Debuggen an ein APK müssen sowohl das APK als auch die debug-fähigen SO-Dateien mit derselben Workstation oder demselben Build-Server erstellt werden.

In Android Studio 3.6 und höher müssen Sie kein neues Projekt erstellen, wenn das APK außerhalb der IDE aktualisiert wird. Android Studio erkennt Änderungen im APK und bietet dir die Möglichkeit, es noch einmal zu importieren.

Aktualisiertes APK importieren

Abbildung 3: Außerhalb von Android Studio aktualisierte APKs können noch einmal importiert werden.