Non dovrebbe usare e.printStackTrace()
direttamente comunque — così facendo inviare le informazioni al registro di Android senza visualizzare quale applicazione (tag log) è venuto.
Come altri hanno già detto, continuare a catturare lo Exception
in questione, ma utilizzare uno dei metodi android.util.Log
per eseguire la registrazione. Si poteva accedere solo il messaggio, ma non l'analisi dello stack, o utilizzare la registrazione dettagliata per l'analisi dello stack:
try {
Object foo = null;
foo.toString();
} catch (NullPointerException ex) {
Log.w(LOG_TAG, "Foo didn't work: "+ ex.getMessage());
Log.d(LOG_TAG, Util.stackTraceWriter(ex));
}
Si dovrebbe spogliare DEBUG
o VERBOSE
messaggi di log dalla vostra produzione costruisce. Il modo più semplice è quello di use ProGuard to remove Log.[dv]
calls dal tuo codice.
fonte
2010-01-15 18:28:22
sembra che "Util.stackTraceWriter' non ci sia più. Comunque c'è questo ['Log.getStackTraceString'] (http://developer.android.com/reference/android/util/Log.html#getStackTraceString%28java.lang.Throwable%29) – superjos
Non ti è permesso usare Log quando voglio pubblicare l'app! –
@SoheilSetayeshi Cosa ti fa pensare che? Controlla i log del tuo telefono; vedrai molti log dalle app installate. –