Aller au contenu

Tracker Error Stack trace


eden91940

Recommended Posts

Hi folks,

J'aimerais savoir quels outils vous utilisez pour reproduire une ano et surtout récupérer d'abord la trace du bug, moi j'ai des traceurs plus ou moins utiles mais des fois j'ai des exceptions de users internationaux et multi devices que j'arrive ni à comprendre ni à reproduire... quelle est votre stratégie pour virer TOUS vos bugs (est ce possible au vu de la multitude des plateformes... ?), vous commencez par une beta ? tracker persos ?

peace

eden

Lien vers le commentaire
Partager sur d’autres sites

Moi je me suis fait un petit outil pour récupérer les crash, par mail ( pour ne pas me faire ch... a faire la partie Web )

J'en parle ( en anglais ) ici :

http://androidblogger.blogspot.com/2009/12/how-to-improve-your-application-crash.html

http://androidblogger.blogspot.com/2010/03/crash-reporter-for-android-slight.html

Emmanuel / Alocaly

Modifié par Alocaly
Lien vers le commentaire
Partager sur d’autres sites

Moi je me suis fait un petit outil pour récupérer les crash, par mail ( pour ne pas me faire ch... a faire la partie Web )

[...]

Mince, voilà bien un aspect que j'avais totalement zappé... si ça ne te dérange pas, je m'empresse d'intégrer ton code dans mon jeu :-)

Lien vers le commentaire
Partager sur d’autres sites

Alocaly, ton code fonctionne du tonnerre!

Un mail de crash report long comme le bras, avec toutes les infos nécessaires, la call stack, etc....

J'ai juste ajouté l'identifiant que j'utilise comme index dans ma base de données de highscores, pour pouvoir recouper l'information de la personne qui envoie le report, et ça fonctionne très bien.

(Juste un détail, dans ta fonction CheckErrorAndSendMail, j'ai dû placer l'init de la variable "FilePath" juste avant l'appel à bIsThereAnyErrorFile() pour que ça marche.)

Merci beaucoup! Espérons juste que ça ne me bourre pas trop ma boite mail...

Lien vers le commentaire
Partager sur d’autres sites

yo re,

en fait j'étais parti de la première version que Alocaly avait filée il y a qq mois, mais force est de constater que je n'ai reçu qu'un mail par ton reporter pour 10 bugs tracés sous Flurry, pour quel motif... ? parce que le user n'envoie pas le mail, parce qu'il relance pas l'appli, à cause du bug que tu mentionnes ? bref je veux forcer l'envoi des mails, est ce possible ? je vais regarder la version 2

d'où ce post en fait

Modifié par eden91940
Lien vers le commentaire
Partager sur d’autres sites

Alocaly, ton code fonctionne du tonnerre!

Un mail de crash report long comme le bras, avec toutes les infos nécessaires, la call stack, etc....

J'ai juste ajouté l'identifiant que j'utilise comme index dans ma base de données de highscores, pour pouvoir recouper l'information de la personne qui envoie le report, et ça fonctionne très bien.

(Juste un détail, dans ta fonction CheckErrorAndSendMail, j'ai dû placer l'init de la variable "FilePath" juste avant l'appel à bIsThereAnyErrorFile() pour que ça marche.)

Merci beaucoup! Espérons juste que ça ne me bourre pas trop ma boite mail...

Merci !!

Pour le FilePath qui est mal placé... goupss... effectivement, j'ai mal fait mon refactoring moi...

C'est peut-etre pour ca que je ne recois plus de mail :)

Sinon, effectivement, et j'en parle il me semble dans le premier article, le fait de passer par le mail limite pas mal le nombre de bugs envoyés : la plupart des gens ne veulent pas envoyer le mail parce qu'ils ont peur, ils ne veulent pas que leur adresse mail finissent chez n'importe qui, ils ont la flemme, etc...

Ce que je comprends très bien.

Donc effectivement, j'estime que je recois un bug sur 10 par ce biais ( a la louche, rien de bien scientifique la dedans ).

Je suis parti du principe que, si il y a un gros bug, il finira bien par arriver jusqu'a mon mail...

Sinon, la vraie solution solide, c'est d'utiliser une connexion http pour envoyer le rapport à un site web.

C'est d'ailleurs ce que fait Flurry... Peut-etre que j'y passerais un de ces jours...

Sinon, Eden, c'est interessant cette solution...

Deux points :

* je comprends pas, c'est que dans mes tests, une fois qu'il y a un crash que j'ai intercepté, je ne peux plus envoyer de mail. C'est pour ca que j'attends le lancement suivant

* Le probleme de cette solution, c'est que ca fait un thread qui tourne à plein temps pour vérifier que tu n'as pas planté. C'est pas top si tu fais du temps réel, et c'est pas top pour la batterie !

Emmanuel / Alocaly

Lien vers le commentaire
Partager sur d’autres sites

J'ai déjà un server PHP/MySQl que mon jeu utilise pour les highscores par des requêtes http (POST), je pourrais très facilement m'en servir pour envoyer le log de crash et le stocker dans la base; mais je pense qu'il ne faut pas le faire dans le dos du joueur. Forfait data, tout ça.

Donc je vais peut être remplacer le mail par une boite de dialogue demandant juste son accord au joueur, et hop, une requête http plus tard, le log est stocké sur mon serveur.

... mais je verrai ça quand ma version pour le beta-test sera prête. :D Les soirées sont courtes!

Lien vers le commentaire
Partager sur d’autres sites

Et si tu postais les infos de crash sur un formulaire GoogleDoc plutôt que vers un script arbitraire qui poserait forcément des problèmes d'hébergement ?

Ca en ferait la librairie de crash reporting ultime, non ?

Lien vers le commentaire
Partager sur d’autres sites

Pas bete comme idée...

Mais je dois avouer que ca me fait un peu peur, GoogleDocs.

Il faut se taper un google Login, et tout ce qui en découle...

ET j'ai jamais trouvé un truc simple pour ca ( un truc simple pour moi, c'est du code à copier tel quel :) )

Emmanuel / Alocaly

Lien vers le commentaire
Partager sur d’autres sites

J'ai commencé à adapter directement le code, ce matin avant de partir bosser, je dois avoir juste un pb dans la soumission de mes paramètres mais j'y suis presque. J'espère pouvoir boucler ça ce soir.

Modifié par Nivek
Lien vers le commentaire
Partager sur d’autres sites

Je me permettrai également un peu de refactoring pour rentrer dans les normes de développement Java, les méthodes qui commencent par une majuscule, par exemple, ça me fait mal aux yeux :P

:)

Désolé, je suis en fait un développeur C++... Et, avec l'age, je commence à avoir mes propres petites habitudes... Donc les accolades en fin de lignes, et les méthodes avec des minuscules, j'ai du mal...

Note que du coup, je dois me battre tout le temps avec Eclipse !!!

Emmanuel / Alocaly

Lien vers le commentaire
Partager sur d’autres sites

Alors, bonne nouvelle, ça fonctionne.

Voici une archive avec l'état de mes travaux de ce soir (contenu du projet eclipse):

http://www.gaudin.tv/storage/android/CrashReport/CrashReport-0.1.zip

Pour ceux qui voudraient tester :

1. Dans /doc il y a un .xls qu'il faut importer sur votre compte Google Docs

2. Une fois importé, aller sur la feuille de calcul créée et aller dans le menu Formulaire / Créer un formulaire

3. Enregistrez le et faites afficher le formulaire, copiez la clé du formulaire dans un coin (genre formkey=dEhOTjRqamJRRGxneklCaThCSE5WV3c6MQ)

4. reportez cette clé dans /res/values/strings.xml/CrashReport_FormUrl pour remplacer celle de mon formulaire de test

5. Lancez le projet pour qu'il tourne sur l'emulateur. Le projet contient une Activity de test qui provoque un NullPointerException dans son onCreate

6. Relancez-le pour que cette seconde exécution envoie le rapport

7. retournez sur Googledocs pour afficher le contenu des réponses au formulaire, une nouvelle ligne a dû s'ajouter :cool:

Maintenant j'aimerais transformer ce projet en librairie simple à intégrer dans un projet d'appli android quelconque, j'ai déjà fait quelques trucs comme mettre l'initialisation du crash reporter dans une classe abstraite CrashReportingApplication dérivée d'Application.

Emmanuel, que dirais-tu si je créais un projet sur Google Code pour centraliser tout ça, sur lequel tu serais également propriétaire ?

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...