Cómo ver una matriz en logcat para android

Me gustaría registrar datos en bruto como arrays en mi logcat, así que sé cuál es la salida. Digamos que tengo una matriz … así:

File[] mp3List = ... Log.v("test", mp3List); 

¿Por qué no puedo registrar la matriz a la consola? ¿Cómo puedo hacerlo?

5 Solutions collect form web for “Cómo ver una matriz en logcat para android”

La razón por la que esto no funciona es simplemente porque el segundo argumento de Log.v es una String no un File[] . Java aplica estrictamente los tipos de argumentos.

Actualización :

Puede transformar fácilmente la información contenida en un objeto File en un objeto String . Todos los objetos java implementan un toString() , que si recuerdo correctamente devuelve una combinación de ClassName y la address del objeto se encuentra. Sin embargo, esto generalmente no contiene información útil. Así que usted necesita para definir la conversión usted mismo.

Ahora convertir de File[] a String es más complicado porque cuando llamas a un método en una matriz funciona en el objeto array en vez de en los miembros de una matriz (que contiene la información que sospecho que te interesa). Así llamando a mp3List.toString() devolverá una sola cadena que describe el objeto de la matriz y no la información contenida en la matriz.

Así que probablemente querrá escribir un método como este:

 String fileArrayToString(File[] f){ String output = ""; String delimiter = "\n" // Can be new line \n tab \t etc... for (int i=0; i<f.length; i++) { output = output + f[i].getPath() + delimiter; } return output; } 

Y luego llamar a hacer su llamada de registro de la siguiente manera:

 Log.v("MyTag", fileArraytoString(mp3List); 

Sin embargo, esto puede ser difícil de leer.

Yo personalmente lo haría así:

 for (int i=0; i<mp3List.legnth; i++) Log.v("MyTag", Integer.toString(i) + ":" + mp3List[i].getPath()); 

Su más simple, produce mensajes de registro más limpios y es más fácil de entender lo que está pasando como un programador.

No puede registrar la matriz porque es sólo un objeto. LogCat no tiene idea de cómo lidiar con él o mostrarlo de la manera que desee.

Si cada objeto File tiene un método toString () que muestra la información que desea puede utilizar:

Log.v(Arrays.toString(mp3List));

De lo contrario tendrás que concatenar tu propia cadena para registrarte:

 StringBuilder sb = new StringBuilder(); for(File f : mp3List) { sb.append(f.getName()); } Log.v(sb.toString()); 

Si tiene una matriz String, sólo puede agregar toString () a ella y se mostrará.

Para objetos personalizados, debe reemplazar el método toString () e imprimir lo que desea ver para ese objeto. Si luego tiene una matriz, la matriz se imprimirá con la salida del método toString.

Tal vez mal entendido, pero creo que es simplemente:

 string sLog = ""; for(mp3List..) { sLog += mp3List[i].getName(); } Log.v(sLog); 

No es Porque, supongo, cuando intentes imprimir una matriz como esa, obtendrás una entrada en el registro diciendo que mp3List es un System.Blah.Blah.File[] .

Espero eso ayude..

Me gustan los trazadores de líneas uno mejor:

for(File file:list) Log.d(TAG, "list: " + file.getPath());

  • Logcat de Android registrando sólo el nivel de información en el dispositivo real. No se pueden obtener mensajes de depuración, ni siquiera las excepciones no controladas
  • Android: Filtrar Logcat por etiqueta mediante un regex
  • "Error al informar WTF" en error logcat
  • AbsListView unregisterIRListener () se llama
  • Android Logcat está vacío cuando se depura con el dispositivo en android studio
  • Logcat in eclipse mantiene el borrado automático
  • ¿Cuánto tiempo se mantienen las entradas de LogCat en la memoria?
  • Errores en Eclipse LogCat - Android
  • ¿Podemos desactivar "chatty" en logcat?
  • No se encontraron métodos de depuración de logcat de Android
  • ¿Cuál es la diferencia entre logcat vs. dmesg?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.