web-dev-qa-db-fra.com

Android 7 Crash natif: libc.so tgkill

Je vois ce crash natif avec la trace de pile suivante.

Cela se produit uniquement dans Android 7.0 & 7.1. Rien de nouveau n'a été ajouté à l'application, qui est en production depuis quelques années, mais avec plus d'appareils mis à jour vers Nougat, ce crash se produit souvent maintenant et devient une nuisance.

Tout avis sera le bienvenu.

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)

Voici une liste des périphériques qui sont effectués: enter image description here

UPDATE 7/18:

Je ne suis toujours pas parvenu à aller au fond des choses. J'ai donc décidé d'acheter un appareil présentant le plus grand nombre d'occurrences et un prix raisonnable. Il s'agit de la version 2017 du Samsung Galaxy J3 avec Android 7.0. Mais malheureusement toujours incapable de reproduire le crash.

J'ai également apporté quelques améliorations à l'utilisation de la mémoire de l'application en production, mais le blocage persiste.

D'après tous les commentaires et mes propres recherches, il semble être lié à des NDK liés de manière dynamique, mais je n'en utilise aucun et il est difficile de savoir si l'une ou l'autre des dépendances existe.

J'aimerais partager mes dépendances, il serait bien que d'autres personnes confrontées au même problème puissent demander si elles utilisent l'une des mêmes dépendances - peut-être que nous pouvons repérer le coupable de cette façon.

// 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; }

Si vous utilisez l'une de ces dépendances/versions, veuillez répondre aux commentaires des personnes confrontées au même blocage. Peut-être pouvons-nous isoler la dépendance au problème.

92
AlexVPerl

Regarder le dépotoir que vous avez fourni donne quelques indices:

_ ZN7Android10uirenderer12renderthread12RenderThread10threadLoopEv

Cela indique que l'erreur s'est produite dans le thread d'interface utilisateur.

libhwui.so x 6

Cela indique que cela se produit au milieu de certains codes liés aux graphiques/interface utilisateur.

libcutils.so - __Android_log_assert

Ceci est un gestionnaire d'assertions, donc probablement une sorte d'affirmation a été violée dans libwhui.

abort:

C'est l'application qui demande au système d'exploitation de s'arrêter "de manière anormale".

augmenter + pthread_kill + tgkill: Ceci est le système d'exploitation (Android) qui ferme l'application.

Vous pouvez voir de la documentation pour déboguer ce type de crash ici .

Quoi qu'il en soit, je crains qu'il ne soit vraiment difficile de spéculer au-delà de cette interprétation grossière et imprécise des données que vous avez présentées.

Peut-être que si vous rencontriez le bogue alors qu'il était attaché à l'afficheur de journaux Android, vous auriez plus de données spécifiques à l'application (ou même un message d'erreur que la fonction assert envoie habituellement).

Mon conseil est d'utiliser quelque chose comme AGRA pour localiser tous les détails relatifs à l'erreur, ou mettre la main sur un périphérique affecté et le reproduire lorsqu'il est connecté à un débogueur.

Bonne chance!

EDIT 2017-06-16 : Je veux juste ajouter quelques informations supplémentaires sur la courtoisie de Fco P. Apparemment, Google a décidé d'apporter des modifications à ce natif les bibliothèques sont autorisées à fonctionner dans les dernières versions de Android (7.x). Plus de détails sont dans ce lien .

28
Lennart Rolland

Ceci est rapporté ici: https://issuetracker.google.com/issues/37123764

Pour reproduire: Obtenez un mode affecté, activez le mode développeur et définissez les activités en arrière-plan sur 0. Activez également "afficher les incidents à l'arrière-plan".

Ensuite, ouvrez l'application et fermez-la à nouveau: vous verrez le crash.

8
TjerkW

Pas dans les commentaires (représentant insuffisant).

Parmi les dépendances que vous avez énumérées, nous utilisons:

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'

différentes versions que la vôtre. Je soupçonne fortement que play-services-maps contient le bogue.

Vous utilisez peut-être fragment de carte dans viewpager comme nous le faisons et de nombreuses personnes en question déjà mentionnées par Koji Matsubara ( https://issuetracker.google.com/issues/37123764 )

3
Deo

J'ai eu le même problème dans Google Play Console pour les mêmes appareils que vous.

Dans mon cas, le problème était dans TextureView avec une animation dans un fil séparé avec verrouillage et déverrouillage de la toile.

J'ai changé l'animation TextureView en animation invalidate-onDraw pour 7 et 7.1 Android et cela a aidé.

2
Sergei Belozerov

Je ne sais pas, peut-être ce problème comme le nôtre, peut-être différent, car je vois dans les dépendances notamment carview. Partagez ici l'espoir utile pour quelqu'un à l'avenir

J'ai également rencontré un problème sur Android 7.0 et 7.1 ci-dessous.

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)

Après des recherches et recherches sur google, j'ai remplacé cardview par Framelayout alors ce problème a été résolu

1
songoku1610