¿Cómo saber cuáles son las razones por las que una aplicación de Android sale con excepciones?

En algún momento, cuando instala una aplicación en particular en el emulador, funciona perfectamente bien. Entonces, instala las aplicaciones en su teléfono y/o tableta y arroja una excepción cuando lo ejecuta.

De manera similar, cuando instala una aplicación en particular en el emulador, no funciona y genera una excepción, pero cuando instala las aplicaciones en su teléfono y/o tableta, pudo ejecutarse perfectamente.

Entonces, mi pregunta es ¿cómo sé cuáles son las razones por las que las aplicaciones salen con excepción? ¿Dónde puedo encontrar más información para saber realmente las razones por las que las aplicaciones salen con excepción?

Ejemplo: uno puede ir a una carpeta particular de las aplicaciones y abrir los registros que le dicen al usuario que las aplicaciones se cierran con la excepción de que no tiene una GPU o no tiene suficiente RAM, etc.

IMPORTANTE: Esta pregunta es desde el punto de vista del usuario final . Esta NO es una pregunta desde el punto de vista de un desarrollador . Gracias.

¿Preguntas esto desde la perspectiva de un usuario, o como desarrollador (cómo detectarlo)?
@Izzy Desde la perspectiva de un usuario
OK, en este caso, vea mi respuesta a continuación. (Para los votantes cercanos: preguntado desde la perspectiva de un usuario, esto NO está fuera de tema, así que manténgalo abierto;)
@Izzy, gracias por tus comentarios. He modificado la pregunta para que no haya malentendidos de las preguntas. Gracias :)

Respuestas (2)

Si usted, como usuario, experimenta este tipo de fallas y desea ayudar al desarrollador a solucionarlas, puede usar herramientas como aLogcat (gratis), logcat o Bug Reporter para obtener un registro de lo que sucedió:

aLogCat Reportero de errores

Mientras que aLogCat le permite restringir el registro más cerca del evento de bloqueo (permitiéndole definir qué capturar), Bug Reporter le permite enviar otra información útil, como detalles del dispositivo y similares.

EDITAR: Como Liam señaló correctamente en su comentario, debido a los cambios de permisos en Jelly Bean (4.1), algunos de esos lectores de registros ya no podían ver nada más que sus propias entradas de registro. Si su dispositivo está rooteado, la forma más fácil de hacer que funcionen nuevamente es convertirlos en aplicaciones del sistema (por ejemplo, con Titanium Backup ). Si su versión de Android es 4.0.x o anterior, esto no debería afectarlo.

Gracias Izzy, el logcat fue maravilloso excepto que es bastante lento (probablemente el archivo de registro es demasiado grande)
El "archivo de registro" es un búfer circular, por lo que tiene un tamaño constante. Uso aLogCat desde hace casi 2 años (de vez en cuando) y estaba contento con él, así que no miré más de cerca alternativas como Gemini Live Logcat , LogViewer Lite (LogCat) y similares, que también podrías probar :)
Recuerde: ¡Estas aplicaciones no funcionan en (creo) 4.1+ sin root!
Sí, +1 por esa pista, Liam. No estoy seguro de si 4.1 o 4.2, pero en torno a eso se estableció una restricción de que las aplicaciones solo pueden ver sus propios registros. Pero hubo un AFAIR que se solucionó. Comprobaré y actualizaré mi respuesta entonces. ¡Gracias por la pista!
En Windows existe una utilidad llamada Event Viewerque captura las excepciones no controladas y reporta una buena cantidad de datos informativos. ¿Tenemos algo equivalente en Android?
@SaeedNeamati ¿Por qué no hacer eso como una pregunta separada, para que sea más fácil? Especialmente porque esta pregunta aquí es bastante antigua y, por lo tanto, es poco probable que su comentario llame la atención :)
@Izzy, gracias por el consejo. lo pregunte aqui

Principalmente debido a las diferencias de hardware.

Puede usar un visor de logcat en Android 2.3 o inferior para ver el logcat de todas las aplicaciones; esto proporcionará el registro de las aplicaciones que le indicará la excepción.

Tenga en cuenta que en Jellybean o ICS, Google impidió que las aplicaciones leyeran el logcat de otras aplicaciones en el dispositivo; aún puede usarlo adbpara ver el logcat completo y enviarlo al logcat.logarchivo con este comando:

adb logcat > logcat.log
Espera un minuto, ¿quieres decir que no hay una forma alternativa de recuperar los registros para la versión de Android superior a 2.3?
Ahm... casi, pero que yo sepa, esto afecta solo a JellyBean y "arriba" (por lo que ICS/4.0 y versiones anteriores aún deberían funcionar). Se puso difícil sin root, ya que cada aplicación ahora solo puede ver sus propias entradas en los registros. Hubo una solución AFAIR, pero no estoy seguro de si eso también involucró a la raíz...