ANDROID : ENVOYER LES RAPPORTS DE CRASH LORS DU PLANTAGE DE VOTRE APPLICATION ANDROID ARCA


Dans ce tutoriel je vais vous montrer comment recevez automatiquement des rapports de plantage(crash) de votre application Android à l'aide de la libraire ACRA (Application Crash Report for Android).


Le point fort de ACRA après son approche simpliste est le pouvoir d'envoyer discrètement des rapports de crash sans nécessiter l'intervention de l'utilisateur.

Ce tutoriel ce compose de deux parties , dans la première partie on va voir comment intégrer ACRA dans votre application Andoird et dans la deuxième partie je vais vous monter comment avoir un backend dans lequel vous pouvez recevez vos rapport et les analyser.

Partie 1 : Intégrer ACRA dans son application Android 

1- Ajout de la labrairie ACRA 

Commencer par télécharger la labrairie à partir d'ici  puis ajouter le fichier '*.jar' dans le dossier 'libs' de votre projet Android.


2- Instanciation de la librairie ACRA 

Ajouter une nouvelle classe Java à votre projet Android puis copier le code ci-dessous : 



import org.acra.*;
import org.acra.annotation.*;


@ReportsCrashes(formKey = "",
formUri="http://applicationId.appspot.com/acrareport",
formUriBasicAuthLogin = "user",
formUriBasicAuthPassword = "password",
mode = ReportingInteractionMode.SILENT,
resNotifTickerText = R.string.crash_notif_ticker_text,
resNotifTitle = R.string.crash_notif_title,
resNotifText = R.string.crash_notif_text,
resNotifIcon = android.R.drawable.stat_notify_error,
resDialogText = R.string.crash_dialog_text,
resDialogIcon = android.R.drawable.ic_dialog_info,
resDialogTitle = R.string.crash_dialog_title,
resDialogCommentPrompt = R.string.crash_dialog_comment_prompt,
resDialogOkToast = R.string.crash_dialog_ok_toast)
public class MyApplication extends Application {

@Override
public void onCreate() {
// The following line triggers the initialization of ACRA
super.onCreate();
ACRA.init(this);
}
}

Vous devriez modifier la valeur de 'formUri' après et mettre l'adresse de l'application qu'on vas déployer dans l'App Engine ce qu'on va voir dans la deuxième partie de ce tutoriel.

Ajouter le contenu ci-dessous dans le fichier 'String.xml' de votre projet :


<string name="crash_notif_ticker_text">Unexpected error, please send a report...</string>

<string name="crash_notif_title">CrashTest has crashed...</string>
<string name="crash_notif_text">Please click here to help fix the issue.</string>
     
<string name="crash_dialog_title">CrashTest has crashed</string>
<string name="crash_dialog_text">An unexpected error occurred forcing the
        application to stop. Please help us fix this by sending us error data,
        all you have to do is click \'OK\'.</string>
<string name="crash_dialog_comment_prompt">You might add your comments about the problem below:</string>
<string name="crash_dialog_ok_toast">Thank you !</string>
<string name="crash_toast_text">Ooooops ! I crashed, but a report has been sent to my developer to help him fix the issue !</string>


3- Configuration (AndroidManifest.xml) 


Vous devez donner  à votre application la permission de l'utilisation d'internet et enfin vous devez affecter à l'attribut android:name le nom de la classe que vous avez ajouté précédemment où nous avons instancié la librairie ACRA. 


<manifest ... &gt;
  <application ... android:name="MyApplication"&gt;
    ...
 </application>
  <uses-permission android:name="android.permission.INTERNET"&gt;
  </uses-permission>
<manifest ... &gt; 

 Partie 2 : Mettre en place son backend 

Pour le backend vous avez plusieurs choix que vous pouvez utiliser :

Dans cette partie je vais montrer comment mettre en place ACRA Reporter .

Les points forts de ACRA Reporter :
  •  Open source 
  •  Gratuit
  •  On a pas besoin d'un hébergement parce qu'on peut le déployer sur l'App Engine(le service cloud de google) et vous avez  besoin seulement d'un compte google.
  •  Il y 'a un petit widget gratuit pour Android qui ce connecte à votre instance 'App Engine' et vous affiche des informations sur les rapports de crash.

1 - Configuration d'Eclipse Juno :


Commençant par installer le plugin de google pour Eclipse et Les SDKs nésaisaire pour déployer ACRA Reporter  sur l'App Engine.
Ouvrez 'Eclipse' allez dans le menu 'Help' puis cliquez sur 'install new software'.
Dans la boite de dialogue 'Install' cliquez sur 'Add' dans 'Name' écrivez ce que vous voulez et pour  'Location' coller cette adresse :

 https://dl.google.com/eclipse/plugin/4.2

Cochez  'Google,plugin for eclispe' et dans 'SDKs'  cochez  'App Engine Java 1.7' et 'GWT  2.5' puis 'Next' etc... 

Si vous voulez plus de détails sur la procédure de l’installation c'est par ici.

2 -  App Engine :


Connectez vous  à votre compte google puis accéder à cette page , créer une application et récupérer son ID qu'on va utiliser après. 


3 - Téléchargement du code source et déploiement :


Vous devez avoir Svn (Subversion) pour pouvoir télécharger le code source , si c'est pas le cas commencer par télécharger un client Subversion à partir d'ici.

Maintenant vous pouvez exécuter cette commande à partir du console :


svn checkout http://acra-reporter.googlecode.com/svn/trunk/ acra-reporter-read-only

Ouvrez Eclispce si vous l'avez fermé , créer un nouveau projet 'Web application project'(choisissez le modèle où il y ' une petite icon Google), allez dans le menu 'File' cliquez sur 'Import' puis séléctionner 'File system'  enfin importer à partir du dossier où vous avez fait le 'checkout'.

Faites un clic droit sur le projet qu'on vient d'importer et sélectionnez 'Properties'  assurez-vous dans la partie 'Google' que les propriétés suivants sont configurées :

1- 'App Engine' : Soit l'utilisation par défaut du 'SDK' (1.7.7 actuellement) ou vous pourriez  spécifier une autre version.

2- 'Deployment' : Identifiant de l'application, dans ce champs vous devrez mettre l'ID  de l'application que vous avez créer dans 'App Engine'.

3- 'Web Toolkit' : Assurer-vous que vous avez sélectionné 'GWT' 2.5.1(version actuelle).

Puis 'OK', cherchez le fichier 'Configuration.java' et modifier les valeurs des variables suivantes par les vôtres : 



 // e-mail address must be either something@applicationid.appspotmail.com or an administrators email.
public static final String defaultSenderEMailAddress = "acra@wintersacrareporter.appspotmail.com";
public static final String defaultSenderName = "ACRA Reporter";

// google analytics tracking app wide all users. null to disable
public static final String gaTrackingID = "UA-37231399-1";


// emails when a new user is registered get sent to here.
public static final String sendNewUsersEMailAddress = "acra@winters.org.nz";

public static final String wikiURL = "http://www.winters.org.nz/acra-reporter";



Compiler le projet('GWT Compile Projet') dans tous les cas il faut pas avoir d'erreurs.

Dans le menu 'Google' cliquez sur 'Deploy to App Engine...'
Attendez le temps nécessaire pour le déploiement puis allez sur cette page(pour mettre à jour la base de donnée ) :

 http://applicationId.appspot.com/cron/dbupgrade 

On vient de finir la configuration et le déploiement du backend 'ACRA reporter' , Il suffit maintenant d'accéder au backend et d'ajouter une nouvelle application android.  


Le tutoriel prend fin , mais si vous voulez d'autres ressources concernant ARCA voici une petite liste : 





Commentaires

Enregistrer un commentaire

Posts les plus consultés de ce blog

4 meilleurs outils de compression Javascript

Android : Nom de code , Version , API level