App bricht ab mit "Senden signal." aber keine Ausnahme oder andere info
Arbeite ich an einer app, die Aufzeichnung von Daten über Bluetooth, aber es stürzt zeitweise nach Stunden des Sammelns von Daten (was es schwer machen, den Fehler zu finden).
Den logcat-output ist nicht sehr hilfreich:
Gibt es keine Ausnahmen und keine Anhaltspunkte für das, was verursacht der Prozess beendet werden.
Wie kann ich herausfinden, was schief gelaufen ist? Ist es eine Ausnahme ausgelöst wird, die nicht durch logcat? Wie kann ich den Pfad dieser bug nach unten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Signal 9 ist SIGKILL, das beendet einen Prozess sofort (keine Prozeduren, die innerhalb des Prozesses ausgeführt wird). Aus der log-Linie, ist der Prozess der Tötung selbst, so dass es nicht einen externen Dienstleister, die das SIGKILL.
Meine Vermutung (und es ist wirklich nur eine Vermutung) ist, dass der Speicher-management-code innerhalb Ihrer Prozess (als Teil der Infrastruktur, nicht um code, den Sie geschrieben haben) ist die Entscheidung, die Sie erschöpft haben einige Ressource und die einzige Möglichkeit ist, um zu sterben. Ich hätte erwartet, dass es mehr Nachrichten, bevor dieser Punkt erreicht ist, in das Protokoll, so kann es sich lohnen, durchsuchen die log-Historie, um zu sehen, ob es nützliche Warnungen aus dem Prozess vor diesem Punkt.
Der Zeile unmittelbar vor einem GC-log, was bedeutet, dass eine gewisse Art von Speicher-Ressourcen ist niedrig. Aber es sieht aus wie die Haufen nicht voll, so versagt Zuweisungen scheint unwahrscheinlich. Sie können immer noch Zuordnungsfehler wenn das Objekt, das zugewiesen wurde, zu groß ist, um auf dem heap oder Fragmentierung verhinderte zugeordnet. Ich würde erwarten, um zu sehen, mehr relevante log-Meldungen in diesem Fall, obwohl.
Ich denke, die Erfassung mehr melden (vielleicht filtern es durch Ihr app-PID, wenn nötig) wird Ihnen helfen, Fortschritte machen.
In meinem Fall gab es keine Warnungen oder irgendwelche Hinweise in der log.
Schließlich ich gefunden, dass mein problem war, dass eine der Aktivitäten, die ich ging in
(sagen wir, dass Aktivität X) registriert wurde, um einen broadcast receiver, aber nie unregistrierte aus es.
Dafür durch die Schließung der Aktivität (Aktivität X) und kommen zurück, um es verursacht Registrierung Wieder derselben broadcast-Empfänger - was verursacht das Chaos!
Einfach hinzufügen
unregisterReceiver(mybroadcast);
(Aktivität X) gelöst.(Ich fügte hinzu, mir zu onDestroy. stellen Sie sicher, dass Sie Abmelden in der richtigen Ort).
Und wenn Sie super verzweifelt ich empfehlen zu sehen, diese slide-share, das erklärt Android crash debugging Ihre Fehler.