Anleitung: Senden eines Logcat zur Fehlerbehebung Ihrer bevorzugten App

Es ist uns allen irgendwann passiert. Es ist keine Schande, das zuzugeben. Manchmal stürzen Android-Apps ab. Unabhängig davon, ob Sie ein Standardgerät zum Ausführen von Google Maps oder ein hochgradig angepasstes ROM mit einem Xposed-Modul zum Verbessern von Google Hangouts verwenden, können Anwendungsabstürze und andere Probleme auftreten und sogar ein Hindernis darstellen. Dies gilt insbesondere für die Entwicklung kleinerer Optimierungen und Anwendungen, wie sie beispielsweise auf unserer Website zu finden sind. Wenn Probleme auftreten, ist eine der konstruktivsten und hilfreichsten Erkenntnisse, die der Benutzer dem Entwickler über die Art des Absturzes vermitteln kann, die Bereitstellung eines Logcat. Obwohl dies für Entwickler äußerst hilfreich ist, kann es für einen normalen Benutzer etwas entmutigend sein, diese Informationen zu erhalten.

In der Regel werden Befehlszeilentools über ADB verwendet. Der Logcat ist für viele Benutzer unzugänglich, die nur wenig oder gar keine Erfahrung mit der Befehlszeile haben. Durch die Veröffentlichung bestimmter Apps konnte jedoch die Verwendung von ADB-Befehlen zum Abrufen und Senden eines Logcat erheblich reduziert werden. In unserer nie endenden Mission, Entwicklern bei der Entwicklung zu helfen, finden Sie hier einen Leitfaden für Anfänger, in dem Sie erfahren, wie Sie einen Logcat senden.


Was ist ein Logcat und wie ziehen wir einen?

Ein Logcat ist ein ADB-Shell-Tool, mit dem alle Systemereignisse protokolliert werden. Dies schließt Fehler, Warnungen, Stapelverfolgungen und allgemeine Systemvorkommen ein. Wenn ein Fehler auftritt, werden über dieses Protokoll wichtige Informationen ausgegeben, die auf die Fehlerquelle hinweisen. Dies macht es zu einem sehr nützlichen Tool für die Fehlerbehebung. Normalerweise werden diese über ADB-Befehle abgerufen und gefiltert. Apps wie aLogcat, Catlog und unser bevorzugtes Tool für diesen Artikel, Matlog, haben den Benutzern jedoch den Aufwand erspart, indem sie diese Befehlstools in der GUI einer App kompiliert haben, die im Play Store heruntergeladen werden kann.

Wie bereits erwähnt, verwenden wir Matlog, um Logcats zu sammeln. Matlog wurde von Junior Member plusCubed für seine schnörkellose und dennoch benutzerfreundliche Oberfläche ausgewählt und basiert auf der Open-Source-App Catlog von Nolan Lawson. Matlog kann wie Catlog aus dem Quellcode kompiliert oder kostenlos aus dem Google Play Store heruntergeladen werden. Durch das Rooten können Sie während des Setups einen Schritt überspringen, für das Sammeln von Logcats ist jedoch kein Root-Zugriff erforderlich . Wenn Ihr Gerät nicht gerootet ist, gewährt ein einzelner ADB-Shell-Befehl der Anwendung Zugriff auf das Lesen der Protokolle Ihres Geräts. Sie haben ADB noch nicht auf Ihrem Computer eingerichtet? Kein Problem, befolgen Sie einfach diese Schritte, um es in Betrieb zu nehmen.

Hinweis: Huawei-Telefone haben die Logcat-Ausgabe vollständig deaktiviert. Sie müssen eine ausgeblendete Einstellung ändern, bevor Sie mit dem Rest dieses Handbuchs fortfahren können.


ADB einrichten

Laden Sie zunächst die ADB-Binärdatei direkt von Google für Ihr bestimmtes Betriebssystem herunter und extrahieren Sie sie in ein separates Verzeichnis auf Ihrem Computer. Installieren Sie als Nächstes den richtigen Treiber für Ihr bestimmtes Telefon. Aktivieren Sie dann "USB-Debugging" unter Einstellungen -> Entwickleroptionen. Wenn die Entwickleroptionen nicht angezeigt werden, müssen Sie sie aktivieren, indem Sie unter Einstellungen -> Über das Telefon siebenmal auf Build-Nummer tippen. Stellen Sie schließlich sicher, dass ADB funktioniert, indem Sie eine Eingabeaufforderung im selben Verzeichnis wie die ADB-Binärdatei starten (Rechtsklick -> Eingabeaufforderung hier öffnen) und den folgenden Befehl ausführen:

 adb devices 

Wenn Sie die Seriennummer Ihres Geräts sehen (und nicht sagen, dass es nicht autorisiert ist), sind Sie golden. Wenn auf Ihrem Telefon ein Popup-Fenster angezeigt wird, in dem Sie aufgefordert werden, Ihrem Computer ADB-Zugriff zu gewähren, sagen Sie "Ja". Wenn dies nicht der Fall ist, starten Sie Ihren Computer / Ihr Telefon neu und schließen Sie es erneut an Ihren Computer an. Versuchen Sie andernfalls, den Treiber erneut zu installieren.


Matlog einrichten

Nachdem Sie ADB (hoffentlich) eingerichtet und gestartet haben, müssen Sie nur noch den folgenden Befehl in einer ADB-Shell eingeben, damit Matlog Logcats erfassen kann. Wenn Ihr Gerät bereits gerootet ist, müssen Sie diesen Befehl nicht ausführen, da dies nur für nicht gerootete Telefone erforderlich ist.

 adb shell pm grant com.pluscubed.matlog android.permission.READ_LOGS 

Matlog Record Widget neben der fehlerhaften App

Sobald Matlog aktiviert und geöffnet ist, werden Systemereignisse in Echtzeit angezeigt. Sie können auf die Pause-Schaltfläche tippen, um dies zu stoppen. Tippen Sie dann auf das Ellipsen-Menü und wählen Sie „Löschen“, um das Feld von nicht benötigten Daten zu befreien. Es wird empfohlen, dies in Vorbereitung der Protokollierung der fehlerhaften App zu tun, um die Protokollgröße zu verringern. Um die Schritte und damit die Protokolllänge noch weiter zu verkürzen, fügen Sie das Matlog-Widget neben der betreffenden abstürzenden Anwendung zu Ihrem Startbildschirm hinzu (siehe Abbildung rechts). In diesem Fall ist Apktool X unsere fehlerhafte App.

Durch Tippen auf das Widget können Sie ein Protokoll benennen und mit der Aufzeichnung beginnen. Stellen Sie die Störung dann einfach sofort nach dem Start der Protokollierung wieder her, wodurch der Logcat mit relevanten Informationen für Ihr Problem gefüllt wird. Wenn das Problem reproduziert ist, tippen Sie einfach erneut auf das Widget, um die Protokollaufzeichnung abzuschließen.

Dabei öffnet Matlog das aufgezeichnete Protokoll. Tippen Sie auf die Auslassungspunkte und wählen Sie "Senden", um das Protokoll als angehängte Textdatei mit allgemeinen Geräteinformationen per E-Mail zu versenden. Das ist es! Ihr Logcat wurde erfolgreich erfasst und an Professor Oak gesendet.

In meinem obigen Beispiel kann ich feststellen, dass Apktool X abgestürzt ist, weil mein Gerät nicht gerootet ist. Doh! Ich hätte den Artikel vollständig lesen müssen, bevor ich die App verwenden wollte.

Das war zu einfach

Natürlich sind nicht alle Probleme so einfach zu erfassen. Manchmal erfordern Probleme beim Booten oder Probleme, die sich über einen längeren Zeitraum erstrecken, unterschiedliche Funktionen der App, um erfasst zu werden. In solchen Fällen sollten Sie Matlog im Hintergrund ausführen lassen (nicht anhalten oder löschen) und die Funktionen Protokollstufe und Filter zum Analysieren von Daten verwenden.

Obwohl dies normalerweise nicht die einzige erforderliche Methode zum Erfassen relevanter Daten ist - einige Situationen erfordern mehr Kontext - kann jedes dieser Tools in längeren Protokollen zum Sortieren und Angeben von Daten für den Entwickler verwendet werden. Dies hängt natürlich von der Art des Fehlers und den Anforderungen des Entwicklers ab. Um eine dieser beiden Methoden zu verwenden, führen Sie einfach Matlog aus, reproduzieren Sie Ihr Problem, navigieren Sie zurück zu Matlog, tippen Sie auf das Punktmenü und wählen Sie eine dieser beiden Sortiermethoden aus.

Auswahl der Protokollebene, die nur Fehler anzeigt

Protokollstufe

Ein weiterer ADB-Befehl, der von Matlog vereinfacht wurde. Mit der Funktion "Log Level" können bestimmte Arten von Systemereignissen und -meldungen angezeigt werden. Nachstehend finden Sie eine kurze Beschreibung der verschiedenen Nachrichtentypen, die auf der Android-Entwickler-Website beschrieben und farblich entsprechend der Matlog-Kennzeichnung gekennzeichnet sind.

Von der niedrigsten zur höchsten Priorität:

  • V: Verbose (Allgemeine Systemereignisse)
  • D: Debuggen
  • I: Informationen
  • W: Warnung
  • E: Fehler
  • F: Tödlich
  • S: Lautlos (Höchste Priorität, auf der nie etwas gedruckt wird)

Die Funktion "Protokollebene" enthält eine entsprechende Liste dieser Meldungen, mit der das Protokoll auf jeder Prioritätsstufe gefiltert werden kann. Wenn Sie eine Protokollebene auswählen, werden nur Ereignisse mit einer eigenen Prioritätsebene oder höher angezeigt. Dies erleichtert die Identifizierung und Gruppierung von Fehlern, anstatt manuell durch zahlreiche Textzeilen zu scrollen, die manchmal Tausende umfassen können.

Suchfiltersatz für „Apktool“

Filter

Filter können auch zum Sortieren von Protokolldaten verwendet werden. Durch das Starten einer Schlüsselwortsuche kann der Benutzer nur Nachrichten anzeigen, die explizit auf dieses Schlüsselwort verweisen. Bei nützlichen Stichwörtern kann es sich um den Namen der fehlerhaften App oder sogar um das Wort "Fehler" handeln, da der Begriff in allen Prioritätsstufen vorkommt, jedoch nicht in allen "Protokollstufen" -Fehlern.

Wenn Sie beim Debuggen einer Anwendung häufig nach bestimmten Schlüsselwörtern suchen / filtern (oder wenn der Entwickler explizit ein eindeutiges Protokollereignis erstellt hat, nach dem Sie suchen können), können Sie auch einen Filter speichern, zu dem Sie zurückkehren können die Zukunft. Dies ist nützlich, wenn Sie im Voraus wissen, wonach Sie suchen. Wenn Sie mit einem Entwickler zusammenarbeiten, kommt dies häufig vor.

Bereit zum Debuggen?

Sie sind vielleicht noch kein Experte für das Debuggen von Android-Apps. Wenn Sie jedoch lernen, wie Sie Logcats sammeln und senden, sind Sie eine großartige Ressource für die Entwickler Ihrer Lieblings-Apps. Mit Matlog und den oben beschriebenen Funktionen war es noch nie einfacher, relevante Informationen zu einer fehlerhaften App zu sammeln, zu sortieren und zu senden.


Haben Sie Matlog oder eine andere Logcat-App verwendet? Fanden Sie diesen Leitfaden hilfreich? Lass es uns in den Kommentaren unten wissen!