12 votos

Problemas para acceder a los registros de mensajes en Jelly Bean con aLogcat

Resumen

He tenido problemas para acceder a los mensajes de registro del K9 usando aLogcat, ver abajo para más detalles. Lo que me gustaría saber es:

  • ¿Por qué no aparecen mensajes de registro de K9 en el visor de registro de aLogcat?
  • ¿Alguien tiene alguna sugerencia de cómo puedo ver el texto completo de los errores que se producen al intentar sincronizar mis carpetas K9?
  • ¿Podría haber cambiado algo en Jelly Bean que hiciera que el registro de K9 dejara de funcionar?
  • Dado que parece haber muy pocos mensajes mostrados por aLogcat en general, ¿ha cambiado algo en Jelly Bean que podría significar que ya no puede acceder a todos los mensajes?

Detalle

Recientemente he tenido problemas de conexión con el K9. Mis carpetas no se sincronizan y la lista de carpetas termina llena de errores de socket ( libcore.io.ErrnoException: ) o errores de ssl ( javex.net.ssl.SSLException: ) etc. donde el la última vez que se comprobó debería serlo. Recibo diferentes mensajes dependiendo del problema que esté ocurriendo en ese momento, pero no puedo ver el texto completo del mensaje de error, así que es difícil adivinar cuál podría ser la causa.

Pensando que los archivos de registro podrían contener más información, seguí las instrucciones de Grabación de un registro de depuración , habilitó el registro de depuración en K9, instaló aLogcat y trató de mirar los registros. Lamentablemente, cualquier memoria intermedia de troncos que seleccione ( Principal , Eventos o Radio ), parece que no hay mensajes del K9.

Si añado el sugerido (k9|AndroidRuntime) filtro regex entonces no veo nada en cualquier de los troncos. Si lo quito entonces Principal contiene mayormente mensajes de recolección de basura, Eventos parecen contener mayormente mensajes del propio aLogcat y no he visto un mensaje de registro en Radio todavía.

Si sirve de algo, estoy usando un Nexus 7, pero hubiera pensado que el registro sería en una ubicación estándar que no cambiaría entre las versiones de Android.

23voto

Lloyd Meinholz Puntos 1520

¿Alguien tiene alguna sugerencia de cómo puedo ver el texto completo de los errores que se producen al intentar sincronizar mis carpetas K9?

Parece que no hay forma de ver estos mensajes de registro en el dispositivo sin Acceso a root pero si tienes acceso a root, hay un par de opciones, ya sea conceder los permisos necesarios a aLogcat o considerar el uso de un horrible hack TM para verlos directamente.

Vea los archivos de registro en su PC o estación de trabajo a través de adb

Si puede conectar su dispositivo Android a un PC o estación de trabajo, entonces puede acceder a los registros a través del adb comando.

Para hacer esto en Windows, primero tendrá que instalar el Android SDK (que requerirá la Java SE SDK ) y añadir el android-sdk\tools y android-sdk\platform-tools a la ruta del sistema . Entonces habilita la depuración USB en tu Nexus 7, conéctalo a través de USB, e instala el Interfaz ADB compuesto de Android de android-sdk\extras\google\usb_driver (Tuve que forzar a Windows XP para que buscara aquí, no encontraría los controladores por sí mismo).

Para los detalles de cómo conseguir adb en funcionamiento sin la instalación completa del SDK de Android, o en máquinas Mac o Linux, ver La excelente respuesta de Izzy a ¿Hay una instalación mínima de BDA?

Entonces puedes abrir una concha (es decir, una cmd y ejecutar el comando:

adb logcat k9:V *:S AndroidRuntime:E
  • He confirmado que esto funciona en mi Nexus 7 sin root.

Conceder permisos para aLogcat

Si tienes Acceso a root podría considerar la concesión de la READ_LOGS permiso para aLogcat como se sugiere en este post aLogcat/CatLog/Leñador no funciona? Haz esto... en el foro de desarrolladores de la adn :

pm grant <pkg> android.permission.READ_LOGS

Conceder este permiso a alogcat o alogcat.donate usarías uno de los siguientes comandos, dependiendo de si estás ejecutando la versión de donación o no:

pm grant org.jtb.alogcat.donate android.permission.READ_LOGS
pm grant org.jtb.alogcat android.permission.READ_LOGS

Según un post de Desarrolladores de Android y el billete la concesión del permiso sobrevive al reinicio y a la actualización, pero no a la desinstalación/reinstalación.

Lamentablemente, ya que esto requiere un acceso Root, ya sea que lo ejecute en el dispositivo o en mi PC (prefijado por adb shell ) Sólo entiendo el error:

Neither user 12345 nor current process has android.permission.GRANT_REVOKE_PERMISSION
  • No puedo confirmar que esto funcione, ya que mi Nexus 7 no se ha rooteado.

Considere la posibilidad de usar un hack horrible TM

Si tienes Acceso a root podría considerar la posibilidad de hacer logcat root de setuid y ejecutando el logcat desde el armazón del dispositivo, como se sugiere en esta respuesta a mi ¿Cómo puedo acceder a los archivos de registro de Android en mi Nexus 7 sin acceso a root? pregunta:

chmod 04755 /system/bin/logcat
logcat k9:V *:S AndroidRuntime:E
  • Una vez más, no puedo confirmar que esto funcione y probablemente sólo lo usaría como último recurso dadas las implicaciones de seguridad.

¿Por qué no aparecen mensajes de registro del K9 en el aLogcat visor de registros?

¿Podría haber cambiado algo en Jelly Bean que hiciera que el registro de K9 dejara de funcionar?

Dado que parece haber muy pocos mensajes mostrados por aLogcat en general, ¿ha cambiado algo en Jelly Bean que podría significar que ya no puede acceder a todos los mensajes?

Esto parece ser un cambio en Jelly Bean que afecta a todas las aplicaciones que pueden intentar leer los archivos de registro.

Aparentemente El permiso de READ_LOGS no se concede a las solicitudes de terceros en Jelly Bean . Ya que este vínculo parece ser poco fiable:

Hoy he probado mi aplicación en el más reciente emulador (api 16) antes de lanzarlo a Google Play. Resultó que Android ahora se niega a conceder este permiso a aplicaciones de terceros. Esto es raro porque he revisado todos los cambios documentados de Jelly Bean y no he encontrado nada que mencione el permiso READ_LOGS.

y más tarde

El nivel de protección de READ_LOGS es ahora "desarrollo del sistema de firmas". La nueva sintaxis de tuberías para protectionLevel también está indocumentada (ver http://code.google.com/p/Android/issues/detail?id=34785 ).

Mi sospecha es que aLogcat sólo ve mensajes generados por sí mismo y es vm.

Para más información, véase Respuesta de flujo es a mi pregunta ¿Qué tan activo debo esperar que sea mi archivo de registro del sistema de Jelly Bean?

0voto

Chris Roberts Puntos 7543

He visto este comportamiento en K9 cuando mi servidor de correo actualizó sus certificados SSL. La solución fue presionar durante mucho tiempo la cuenta, seleccionar Account settings -> Fetching mail -> Incoming server y acaba de golpear Next a través de las páginas para confirmar su configuración hasta que aparezca la ventana emergente sobre el certificado (esto podría no aparecer si todo está bien con el certificado, el mío tenía un vhost equivocado). Confirma el certificado y repasa el resto de los ajustes, y tu cuenta debería empezar a funcionar.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X