Android 7 Native Crash: libc.so tgkill

98

Ich sehe diesen nativen Absturz mit der folgenden Stapelverfolgung.

Dies geschieht nur in Android 7.0 und 7.1. Der App, die seit einigen Jahren in Produktion ist, wurde nichts Neues hinzugefügt. Da jedoch immer mehr Geräte auf Nougat aktualisiert werden, tritt dieser Absturz jetzt häufig auf und wird zu einem Ärgernis.

Jeder Rat wäre dankbar.

native: pc 000000000007a6c4  /system/lib64/libc.so (tgkill+8)
  native: pc 0000000000077920  /system/lib64/libc.so (pthread_kill+64)
  native: pc 000000000002538c  /system/lib64/libc.so (raise+24)
  native: pc 000000000001d24c  /system/lib64/libc.so (abort+52)
  native: pc 000000000001225c  /system/lib64/libcutils.so (__android_log_assert+224)
  native: pc 00000000000610e0  /system/lib64/libhwui.so
  native: pc 000000000003908c  /system/lib64/libhwui.so
  native: pc 000000000003609c  /system/lib64/libhwui.so
  native: pc 000000000003b4fc  /system/lib64/libhwui.so
  native: pc 000000000003c520  /system/lib64/libhwui.so
  native: pc 000000000003e694  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+152)
  native: pc 00000000000127f0  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+336)
  native: pc 00000000000a50b0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
  native: pc 00000000000770f4  /system/lib64/libc.so (_ZL15__pthread_startPv+204)
  native: pc 000000000001e7d0  /system/lib64/libc.so (__start_thread+16)

Hier ist eine Liste der betroffenen Geräte: Geben Sie hier die Bildbeschreibung ein

UPDATE 7/18:

Da ich immer noch nicht in der Lage war, die Wurzel zu finden, entschied ich mich für ein Gerät, das am häufigsten vorkam und einen angemessenen Preis hatte. Es stellte sich heraus, dass es sich um die Samsung Galaxy J3 2017-Version mit Android 7.0 handelte. Leider kann ich den Absturz immer noch nicht reproduzieren.

Ich habe auch einige Verbesserungen der Speichernutzung an der App in der Produktion vorgenommen, aber der Absturz ist immer noch im Gange.

Aus all den Kommentaren und meiner eigenen Forschung geht hervor, dass es sich um dynamisch verknüpfte NDKs handelt, aber ich verwende keine und es ist schwer herauszufinden, ob eine der Abhängigkeiten dies tut.

Ich möchte meine Abhängigkeiten teilen. Es wäre großartig, wenn andere Leute, die mit demselben Problem konfrontiert sind, anrufen könnten, wenn sie eine der gleichen Abhängigkeiten verwenden - vielleicht können wir den Schuldigen auf diese Weise erkennen.

// App Compat
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'

    // Play Services
    compile 'com.google.android.gms:play-services-location:8.3.0'
    compile 'com.google.android.gms:play-services-maps:8.3.0'
    compile 'com.google.android.gms:play-services-analytics:8.3.0'
    compile 'com.google.android.gms:play-services-appindexing:8.3.0'
    compile 'com.google.android.gms:play-services-ads:8.3.0'

    // Misc Libraries
    compile 'fr.avianey.com.viewpagerindicator:library:2.4.1@aar'
    compile files('app/libs/htmlcleaner-2.7.jar')
    compile files('app/libs/protobuf-java-2.6.0.jar')
    compile files('app/libs/nineoldandroids-2.4.0.jar')

    // Fabric
    compile('com.twitter.sdk.android:twitter:1.13.0@aar') { transitive = true; }
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; }

Wenn Sie vor dem gleichen Absturz stehen, antworten Sie bitte in Kommentaren, wenn Sie eine dieser Abhängigkeiten / Versionen verwenden. Vielleicht können wir die Problemabhängigkeit herausgreifen.

AlexVPerl
quelle
6
Vielleicht denke ich, dass Ihr nativer Absturz das gleiche folgende Problem ist. issuetracker.google.com/issues/37123764 Meine Anwendung hat einen ähnlichen Fehler, aber ich finde keine Lösung ... Ich denke, Android 7, 7.1-Fehler.
Koji Matsubara
3
Ich sehe auch dies, genau den gleichen Stack-Trace und genau die gleiche Liste der betroffenen Geräte! Die neueste Version wurde am 15. Mai veröffentlicht, aber ich habe zwei Zeilen auf der Absturzseite mit demselben "tgkill" -Namen.
Orgmir
3
Ich habe auch genau das gleiche Problem, genau den gleichen Stack-Trace, genau die gleichen betroffenen Geräte, die keine nativen Bibliotheken verwenden und Standort- und Kartendienste verwenden. Vielleicht hängt es damit zusammen? Hat jemand eine Lösung?
Cord Rehn
3
In den letzten 2 Monaten gab es über 30.000 dieser Tgkill-Abstürze, von denen mehr als 14.000 Benutzer betroffen waren. Ich habe die letzten Wochen damit verbracht, alle von uns verwendeten Bibliotheken von Drittanbietern langsam zu entfernen und bereitgestellte Rollouts freizugeben, um festzustellen, ob ich herausfinden kann, was diese Abstürze verursacht. Bis auf Retrofit, Okhttp, Jackson, Picasso, Firebase, Google Play Services, MultiDex und Apache Legacy wird alles entfernt. Basierend auf diesem Thread diskutieren wir die Freigabe für 1% unserer Benutzer, wobei unsere Karten entfernt werden. Derzeit läuft: 'com.google.android.gms: play-services-maps: 11.0.1'
FinHead
3
Wir haben einen inszenierten Rollout veröffentlicht, bei dem nur 'com.google.android.gms: play-services-maps: 11.0.1' entfernt wurde. Nachdem ich es das ganze Wochenende gesehen hatte, gab es keine Fälle des Tgkill-Absturzes. Ja, dieses Problem wird durch Karten verursacht, die von @Deo erwähnt und mit dem unten stehenden Problem-Tracker verknüpft sind.
FinHead

Antworten:

33

Ein Blick auf die von Ihnen bereitgestellte Müllkippe gibt einige Hinweise:

_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv

Dies zeigt an, dass der Fehler im UI-Thread aufgetreten ist.

libhwui.so x 6

Dies weist darauf hin, dass dies in der Mitte eines Grafik- / UI-Codes geschieht.

libcutils.so - __android_log_assert

Dies ist ein Assert-Handler, daher wurde höchstwahrscheinlich eine Art Assert verletzt libwhui.

abbrechen:

Dies ist die Anwendung, die das Betriebssystem anweist, "abnormal" herunterzufahren.

erhöhen + pthread_kill + tgkill: Dies ist das Betriebssystem (Android), das die App herunterfährt.

Sie können für das Debuggen von dieser Art von Abstürzen eine Dokumentation sehen hier .

Ich fürchte jedenfalls, es ist wirklich schwierig, über diese grobe und ungenaue Interpretation der von Ihnen präsentierten Daten hinaus zu spekulieren.

Wenn Sie den Fehler beim Anhängen an den Android-Protokoll-Viewer entdeckt haben, haben Sie möglicherweise mehr anwendungsspezifische Daten (oder sogar eine Fehlermeldung, die die Assert-Funktion normalerweise ausgibt).

Mein Tipp ist, so etwas wie ACRA zu verwenden, um alle Details des Fehlers aufzuspüren oder ein betroffenes Gerät zu beschaffen und es tatsächlich zu reproduzieren, während es an einen Debugger angeschlossen ist.

Viel Glück!

EDIT 2017-06-16 : Ich möchte nur einige zusätzliche Informationen mit freundlicher Genehmigung von Fco P hinzufügen. Anscheinend hat Google beschlossen, einige Änderungen an den nativen Bibliotheken vorzunehmen, die in den neuesten Versionen von Android (7.x) ausgeführt werden dürfen. Weitere Details finden Sie unter diesem Link .

Lennart Rolland
quelle
erhöhen + pthread_kill + tgkill: Dies ist das Betriebssystem (Android), das die App herunterfährt. Tritt dies auf, wenn Benutzer die App beenden oder automatisch vom Betriebssystem aus?
DevC
1
Soweit ich weiß, ist das O / S das Herunterfahren eines fehlerhaften Prozesses. Wenn die App "friedlich" beendet würde, wäre dies keine "Kill" -Operation.
Lennart Rolland
8

Dies wird hier gemeldet: https://issuetracker.google.com/issues/37123764

So reproduzieren Sie: Rufen Sie einen betroffenen Modus auf, aktivieren Sie den Entwicklermodus und setzen Sie die Hintergrundaktivitäten auf 0. Aktivieren Sie auch "Hintergrundabstürze anzeigen".

Öffnen Sie dann die App und schließen Sie sie erneut: Sie werden den Absturz sehen.

TjerkW
quelle
3

Nicht in Kommentaren (unzureichende Wiederholung).

Von den von Ihnen aufgelisteten Abhängigkeiten verwenden wir:

compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:support-v4:25.3.1'

compile 'com.google.android.gms:play-services-maps:10.2.1'
compile 'com.google.android.gms:play-services-location:10.2.1'

andere Versionen als deine. Ich habe den starken Verdacht, dass Play-Services-Maps den Fehler enthalten.

Vielleicht verwenden Sie das Kartenfragment im Viewpager wie wir und viele der bereits erwähnten Personen von Koji Matsubara ( https://issuetracker.google.com/issues/37123764 ).

Deo
quelle
Kennen Sie eine Lösung, um dies anhand dieses Fehlerberichts zu verhindern? Ich sehe keine Lösung, Problemumgehung oder ähnliches.
Hvaughan3
Ich habe das gleiche Problem, das alle meine Apps betrifft, verwende jedoch nur Unterstützungsbibliotheken: Anmerkungen, v4, Appcompat und Design.
3c71
3

Ich weiß nicht, vielleicht ist dieses Problem wie das unsere, vielleicht anders, weil ich in Abhängigkeiten einschließlich sehe carview. Teilen Sie hier Hoffnung nützlich für jemanden in der Zukunft

Ich hatte auch Probleme mit Android 7.0 und 7.1 unten

03-04 23:44:51.489 2173-2173/? A/DEBUG: Abort message: 'Error: Ambient Vertex Buffer overflow!!! used 420, total 284'
03-04 23:44:51.489 2173-2173/? A/DEBUG:     eax 00000000  ebx 0000083b  ecx 00000857  edx 00000006
03-04 23:44:51.489 2173-2173/? A/DEBUG:     esi d19ff978  edi d19ff920
03-04 23:44:51.489 2173-2173/? A/DEBUG:     xcs 00000023  xds 0000002b  xes 0000002b  xfs 0000006b  xss 0000002b
03-04 23:44:51.489 2173-2173/? A/DEBUG:     eip f00a6bb9  ebp d19fee68  esp d19fee0c  flags 00000292
03-04 23:44:51.555 2173-2173/? A/DEBUG: backtrace:
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #00 pc 00000bb9  [vdso:f00a6000] (__kernel_vsyscall+9)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #01 pc 0007a2ec  /system/lib/libc.so (tgkill+28)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #02 pc 00075b35  /system/lib/libc.so (pthread_kill+85)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #03 pc 0002784a  /system/lib/libc.so (raise+42)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #04 pc 0001ee26  /system/lib/libc.so (abort+86)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #05 pc 0000fa65  /system/lib/libcutils.so (__android_log_assert+245)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #06 pc 00084356  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #07 pc 0003a5ba  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #08 pc 00083d04  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #09 pc 0008c5df  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #10 pc 0008e6d8  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #11 pc 0008e5d2  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #12 pc 000350fe  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #13 pc 0001201f  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+207)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #14 pc 0006e53b  /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+111)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #15 pc 00011873  /system/lib/libutils.so (_ZN13thread_data_t10trampolineEPKS_+259)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #16 pc 00075292  /system/lib/libc.so (_ZL15__pthread_startPv+210)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #17 pc 0002028e  /system/lib/libc.so (__start_thread+30)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #18 pc 0001e066  /system/lib/libc.so (__bionic_clone+70)

Nach Recherche und Suche bei Google habe ich cardviewbis Framelayoutdahin dieses Problem behoben

songoku1610
quelle
Hi @ songoku1610, wie haben Sie herausgefunden, dass das Problem durch Cardview verursacht wird?
Ran94
1
Ich habe versucht zu ersetzen, cardviewbis Framelayoutdieses Problem behoben war. Dieses Problem tritt nur unter Android 7.x auf
songoku1610
Eine andere Sache, die Frage oben wurde bearbeitet, entfernen Sie because I see in dependencies have including carview
Textunabhängigkeiten
3

Ich hatte das gleiche Problem in der Google Play Console für die gleichen Geräte wie Sie.

In meinem Fall war das Problem in TextureView mit Animation in einem separaten Thread mit Sperr- und Entsperrfläche.

Ich habe die TextureView-Animation für 7 und 7.1 android in die invalidate-onDraw-Animation geändert, und das hat geholfen.

Sergei Belozerov
quelle
Meine Anwendung verwendet TextureView. Könnten Sie bitte mehr auf aufwendige invalidate-OnDraw Animation .
Shishir Shetty
@ShishirShetty Ich verwende TextureView nicht mehr. Ich überschreibe View, beschreibe alle Animationen in der onDraw-Methode und rufe alle 16 Millisekunden (~ 60fps) die postInvalidateOnAnimation () -Methode auf
Sergei Belozerov
-1

Ich sehe dieses Problem in einem Absturzbericht auf dem Gerät eines Benutzers - "Huawei Honor 7X (HWBND-H)" - mit Android 8.0. Da es bei anderen Geräten / Betriebssystemversionen vor Ort nicht vorkommt, denke ich, dass es möglicherweise bereits in Betriebssystemaktualisierungen behoben wurde (die dieser Benutzer nicht aufgegriffen oder möglicherweise von Huawei nicht bereitgestellt hat).

backtrace:
  #00  pc 000000000006a808  /system/lib64/libc.so (tgkill+8)
  #01  pc 000000000001db50  /system/lib64/libc.so (abort+88)
  #02  pc 0000000000007f4c  /system/lib64/liblog.so (__android_log_assert+304)
  #03  pc 000000000004e314  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread10EglManager13createSurfaceEP13ANativeWindow+192)
  #04  pc 000000000004c790  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread14OpenGLPipeline10setSurfaceEPNS_7SurfaceENS1_12SwapBehaviorE+64)
  #05  pc 00000000000492b4  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread13CanvasContext10setSurfaceEPNS_7SurfaceE+140)
  #06  pc 000000000005123c  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthreadL17Bridge_initializeEPNS1_14initializeArgsE+16)
  #07  pc 0000000000052fc4  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread22MethodInvokeRenderTask3runEv+24)
  #08  pc 0000000000053f1c  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+348)
  #09  pc 0000000000011670  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+280)
  #10  pc 00000000000be1e8  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+136)
  #11  pc 00000000000671b8  /system/lib64/libc.so (_ZL15__pthread_startPv+36)
  #12  pc 000000000001eee4  /system/lib64/libc.so (__start_thread+68)
Venu G.
quelle