¿Cómo puedo depurar un problema aparentemente dependiente del hardware con mi aplicación de Android sin acceso al hardware?

Tengo una aplicación de código abierto en el mercado de Android. Parece que funciona bien para mí (con más de 1,000 instalaciones activas, debo suponer que funciona para la mayoría de las personas).

Hace poco recibí uninforme de error eso indicaba un problema para al menos tres usuarios en teléfonos Samsung (Intercept y Captivate). No he podido reproducir el problema en mi ADP2 y en el emulador.

Para obtener suficientes datos para diagnosticar el problema, primero intenté agregar el registro y luego pedí a los usuarios que enviaran registros a través deLog Collector. Cada vez que un usuario intentó enviar el registro (hubo cuatro intentos), se truncó y no obtuve ningún dato útil.

Luego agreguéACRA al proyecto en un intento de obtener información, pero parece que no puedo detectar automáticamente el error para enviar un informe.

Como no tengo un teléfono Samsung y no puedo reproducirlo en nada donde pueda conectarme con el depurador, no tengo ideas. La única idea que me queda es agregar un botón a la interfaz de usuario para generar un informe.

¿Hay otros enfoques para sugerir?

Actualizar: dado que las personas piden más detalles: esencialmente, la aplicación lee en archivos de texto de los activos y los coloca (con algo de preprocesamiento) en un TextView en un ScrollView. (Los datos se agregan progresivamente a un SpannableStringBuffer y luego se pasan a la función setText () de TextView). Dependiendo de las opciones elegidas, el texto que se muestra está entre 15k y 115k. En los teléfonos con este problema, solo se muestra una parte del texto. El punto de corte depende de las opciones, pero parece estar entre 17k y 18k.

ACRA envía un informe para todas las excepciones no detectadas y las coloca en un formulario / hoja de cálculo de Google. He recibido informes de mi emulador y de mi teléfono, así que sé que ese fin funciona. (En realidad, a menudo me parece más rápido depurar desde el seguimiento de la pila en ese informe que adjuntar el depurador al proceso).

Especificaciones del teléfono: he ejercido la aplicación en emuladores que ejecutan 1.5, 1.6, 2.1 y 2.2. Mi teléfono es ADP2 (la versión de desarrollador de MyTouch), pero he instalado unROM de terceros saltar a Froyo (2.2). No conozco un emulador específicamente para la compilación del sistema operativo Samsung, aunque eso sería bastante útil aquí.

Como la longitud de texto esperada es constante, yodebería ser capaz de detectar si se lee correctamente o no. Agregué verificaciones al final de mi procesamiento de texto, pero nunca se activaron, lo que indica que el problema no era leer el archivo. Luego intenté agregar controles a onPostCreate y onPostResume, pero tampoco fallaron. Sin embargo, parece que el hilo de la interfaz de usuario aún no se había ejecutado en ese momento.

Ahora he hecho 6 versiones privadas de APK adjuntas al error en el rastreador de errores. Francamente, me sorprende que los usuarios todavía los estén probando. Esta última versión tiene un botón para forzar un informe de error, que solo se llamará después de que el hilo de la interfaz de usuario haya presentado la pantalla. Con suerte, eso me dará suficiente información variable para señalarme en la dirección correcta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta