Application se bloque (parfois) avec Fatal signal 11 (SIGSEGV), code 1
Je développe une application avec le SDK, et tout a bien fonctionné jusqu'à maintenant. J'ai des erreurs comme celle-ci:
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x750057 in tid 10206 (FinalizerDaemon)
ou bien celle-ci:
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x94789680 in tid 24605 (FinalizerDaemon)
et ils font mon appli crash.
Il n'est pas toujours les mêmes erreurs, mais ils viennent toujours tout seul dans mon Logcat,sans aucune autre information.
Dans tous mon application j'utilise ICI des objets et des services, et même par l'impression de la stacktrace je n'ai pas plus d'informations sur les erreurs.
Je viens de remarquer que ces erreurs apparaissent assez bien au hasard, mais seulement quand je suis à l'aide de ces objets/services.
Je utiliser un vrai appareil pour tester mon application, un Sony Xperia Z3 compact, donc je ne pense pas que ça vient de là.
Je suis vraiment perdu, donc si quelqu'un a une idée, même sur la façon d'obtenir plus d'infos sur les erreurs, s'il vous plaît aider
EDIT:
05-09 23:04:10.148 6770-6782/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x4 in tid 6782 (FinalizerDaemon)
05-09 23:04:10.266 30179-30179/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-09 23:04:10.266 30179-30179/? I/DEBUG: UUID: 5569a1b9-c913-4101-99fa-5099e2cadd48
05-09 23:04:10.266 30179-30179/? I/DEBUG: Build fingerprint: 'Sony/D5803/D5803:5.1.1/23.4.A.1.264/2418263178:user/release-keys'
05-09 23:04:10.266 30179-30179/? I/DEBUG: Revision: '0'
05-09 23:04:10.266 30179-30179/? I/DEBUG: ABI: 'arm'
05-09 23:04:10.266 30179-30179/? I/DEBUG: pid: 6770, tid: 6782, name: FinalizerDaemon >>> com.david.metroz <<<
05-09 23:04:10.266 30179-30179/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4
05-09 23:04:10.294 30179-30179/? I/DEBUG: r0 98327400 r1 00000000 r2 00000002 r3 00000000
05-09 23:04:10.294 30179-30179/? I/DEBUG: r4 aec264c0 r5 b3df7acc r6 98327400 r7 73652348
05-09 23:04:10.294 30179-30179/? I/DEBUG: r8 6f9983a8 r9 b482a800 sl 12f1d820 fp b3df7abc
05-09 23:04:10.294 30179-30179/? I/DEBUG: ip b5303950 sp b3df7ab0 lr b510717f pc a0b7205c cpsr a00e0010
05-09 23:04:10.294 30179-30179/? I/DEBUG: #00 pc 000f405c /data/app/com.david.metroz-1/lib/arm/libMAPSJNI.so (Java_com_nokia_maps_GeoBoundingBoxImpl_destroyNative+76)
05-09 23:04:10.294 30179-30179/? I/DEBUG: #01 pc 001d7d4f /data/dalvik-cache/arm/data@[email protected]@[email protected]
05-09 23:04:12.302 862-1274/? E/NativeCrashListener: Exception dealing with report
android.system.ErrnoException: read failed: EAGAIN (Try again)
at libcore.io.Posix.readBytes(Native Method)
at libcore.io.Posix.read(Posix.java:165)
at libcore.io.BlockGuardOs.read(BlockGuardOs.java:230)
at android.system.Os.read(Os.java:350)
at com.android.server.am.NativeCrashListener.consumeNativeCrashData(NativeCrashListener.java:240)
at com.android.server.am.NativeCrashListener.run(NativeCrashListener.java:138)
EDIT 2: je suis maintenant à peu près sûr que le crash se produit lorsque je suis récupération ICI des objets de base de données à l'aide de gson.
Le code suivant fonctionne quand tout est fait dans la même application d'exécution, mais lorsque j'enregistre une chaine de caractères dans la base de données, fermer l'application, puis ouvrez-la à nouveau, j'ai l' Fatal signal
lors de la conversion du json string
de revenir à l'objet.
//to insert I create a json string and then insert it in the database
String mGbSortie = gson.toJson(geoboundinBox);
//and then to retrieve the data :
Type gbType = new TypeToken<GeoBoundingBox>(){}.getType();
geoBoudingBox = gson.fromJson(stringFromDb, listType)
Je ne sais vraiment pas pourquoi ça ne marche pas.
OriginalL'auteur David Seroussi | 2016-05-08
Vous devez vous connecter pour publier un commentaire.
1) tout d'Abord déterminer si c'est un bug au sein de l'android, le tiers des bibliothèques ou de votre appareil, de sorte que vous pouvez savoir de quelle manière procéder.
Cette réponse donne une solution pour le faire:
Il y a ces deux questions, de discuter de l'erreur que vous recevez dans le détail:
Android Fatal signal 11 (SIGSEGV) à 0x636f7d89 (code=1). Comment peut-il être traqué?
Fatal signal 11 (SIGSEGV) à 0 x 00000000 (code=1) - PhoneGap
2) En termes de l'analyse de votre geobounds valeurs (qu'elle semble l'être est là que le problème réside peut-être), assurez-vous de la manipulation de votre analyse entre Gson et Json correctement, avec la bonne geobound valeurs. Il apparaît de la façon dont vous stockez les valeurs n'est pas en accord avec la façon dont vous êtes à la récupération.
De Mykong:
De cette réponse:
Ces questions donnent plus de détails:
Comment analyser le parsing json à l'Aide de GSON dans android
parser JSON avec gson et GsonBuilder()
3) s'Assurer de transmettre les valeurs correctes pour votre geobound co-ords.
Cette question La valeur n'est pas comprise dans la plage attendue GeoboundingBox WinRT (même si c'est C# donne un bon exemple de la façon de briser les composants de renseignements vous tentez de stocker et de récupérer.
La réponse est simple.
Et d'apprendre comment analyser votre json avec gson:
Utilisation Gson de travailler avec JSON dans vos applications Android
Il est également cette gihub repo pour vous à parcourir pour plus d'idées.
OriginalL'auteur Yvette Colomb
Vous pouvez coller n'importe quel plus d'info de adb logcat? Il n'est actuellement pas suffisamment d'informations pour nous permettre de vous aider. Une erreur de segmentation dans le finaliseur démon peut impliquer double suppression des objets natifs. Sans plus d'informations, il pourrait être n'importe où dans l'OS ou dans le SDK.
Le sauté de cadres moyens à votre application de traitement de beaucoup de données dans le thread principal. Sauter 161 cadres de plus de 3s de temps occupé! S'il vous plaît essayez d'utiliser AsyncTasks ou des fils pour optimiser votre application.
Il semble que vous êtes à l'aide de GSON type deserializer, ce qui ne va pas construire notre langue maternelle correctement les objets. Manuellement la désérialisation de la lat, lng et d'appeler les nouveaux GeoBoundingBox() ne va pas planter.
C'est une possibilité, mais avoir juste une vérification rapide du code, je ne vois pas comment vous auriez un pointeur non valide avec la pile. Vous pouvez poster les coordonnées de la boîte englobante qui tombe en panne?
Eh bien, il se bloque avec toutes les coordonnées j'ai essayer, mais vous pouvez prendre un coup d'oeil si vous le souhaitez :
gb: right = Lat: 48.86490904039134, Long: 2.39895392405874, Alt: 0.0 left = Lat: 48.864913, Long: 2.3988175, Alt: 0.0 center= Lat: 48.86491102019567, Long: 2.3988857120293696, Alt: 1.073741824E9
.J'ai ajouté un peu de code, avez-vous une idée de pourquoi ça ne fonctionne pas ?
Semble que vous êtes la construction de nos géo boîte englobante sans l'aide du constructeur normal? Très probablement, votre boîte englobante code n'est pas l'appel pour le constructeur dans le code natif, donc, effectivement, il a créé un corrompu de l'objet. Pouvez vous s'il vous plaît désérialiser le lat, lng et manuellement à l'appel de nouveau GeoBoundingBox() ?
OriginalL'auteur David Leong
J'ai résolu le même problème par le code suivant.
Ajouter
android:vmSafeMode="true"
dans application balise dans Manifeste fichier.Votre balise application devrait ressembler à:
Espère que cela va vous aider.
0,000000,0,000000;0,000000,0,000000
J'espère que votre problème est résolu.
Je recommande de ne pas le faire. Il peut se cacher le problème et, finalement, de corrompre le C++ tas.
OriginalL'auteur Hiren Patel