J'ai publié une version bêta d'une application Android à quelques amis. Maintenant, je voudrais corriger quelques bugs qui sont survenus pendant la période de test.
J'ai défini un utilitaire de rapports d'incidents tiers, afin que je puisse facilement gérer les plantages d'applications. Cependant, il existe des comportements erronés qui ne provoquent pas de crash. Dans ces cas, j'aimerais inspecter les journaux d'application et voir ce qui ne va pas.
L'application at-elle un moyen d'envoyer ses entrées logcat par courrier électronique?
root
ni aucune autre autorisation spéciale.Appelez cette méthode dans onDestroy de votre activité principale.
public void SendLogcatMail(){
// save logcat in file
File outputFile = new File(Environment.getExternalStorageDirectory(),
"logcat.txt");
try {
Runtime.getRuntime().exec(
"logcat -f " + outputFile.getAbsolutePath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//send file using email
Intent emailIntent = new Intent(Intent.ACTION_SEND);
// Set type to "email"
emailIntent.setType("vnd.Android.cursor.dir/email");
String to[] = {"[email protected]"};
emailIntent .putExtra(Intent.EXTRA_EMAIL, to);
// the attachment
emailIntent .putExtra(Intent.EXTRA_STREAM, outputFile.getAbsolutePath());
// the mail subject
emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject");
startActivity(Intent.createChooser(emailIntent , "Send email..."));
}
On dirait que RemoteLogger
est exactement ce dont vous avez besoin
https://github.com/sschendel/RemoteLogger
Capturez la journalisation de débogage dans un fichier que l'utilisateur peut facilement vous envoyer par courrier électronique. Cela a été créé par nécessité pour résoudre un bogue non reproductible signalé par un utilisateur. Pour être clair, la journalisation a été déposée dans une version de l'application publiée pour tester les utilisateurs à résoudre. Supprimé dans le code de production final.
Library fournit des points d'ancrage pour démarrer, arrêter, envoyer et supprimer le fichier journal.