NullPointerException: println necesita un mensaje en Android
En mi reproductor multimedia reproduzco una canción desde la tarjeta SD. muestra un error como NullPointerException: println necesita un mensaje e en Android. Lo intenté durante mucho tiempo pero no sé el motivo. Por favor ayúdenme.
código:
try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("/sdcard/t1.mp3");
seek.setMax(mediaPlayer.getDuration());
mediaPlayer.prepare();
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(this);
}
catch(Exception ex){
Log.e("sdcard-err2:",ex.getMessage()); // null pointer exception : println needs a message
}
Gato de registro:
05-16 19:27:54.491: ERROR/AndroidRuntime(6889): Caused by: java.lang.NullPointerException: println needs a message
05-16 19:27:54.491: ERROR/AndroidRuntime(6889): at android.util.Log.println(Native Method)
05-16 19:27:54.491: ERROR/AndroidRuntime(6889): at android.util.Log.e(Log.java:208)
05-16 19:27:54.491: ERROR/AndroidRuntime(6889): at com.seek.bar.media3.onCreate(media3.java:43)
05-16 19:27:54.491: ERROR/AndroidRuntime(6889): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-16 19:27:54.491: ERROR/AndroidRuntime(6889): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
05-16 19:27:54.491: ERROR/AndroidRuntime(6889): ... 11 more
Para cualquier otra persona que entienda esto, intente reemplazar la única llamada al método o el nombre de la variable con "" + varName.
Por ejemplo,
Log.d("LOGCAT", getErrorMsg());
se convierte
Log.d("LOGCAT", "" + getErrorMsg());
En la captura, use:
String err = (ex.getMessage()==null)?"SD Card failed":ex.getMessage();
Log.e("sdcard-err2:", err);
Pasar null
al segundo argumento de una Log
función de registro genera ese error, independientemente de la fuente.
Tal vez simplemente no haya ningún mensaje adjunto en la excepción que estás captando. Inténtalo ex.printStackTrace();
en su lugar. Espero que esto ayude.
Otra forma de utilizarlo es con Log.getStackTraceString(e), ejemplo:
Log.e(TAG, Log.getStackTraceString(e));
Puedes leer más sobre esto en la documentación de Android.