48 votes

NullPointerException : println a besoin d'un message dans Android

dans mon lecteur multimédia, je joue une chanson à partir de la carte SD. il affiche une erreur en tant que NullPointerException : println a besoin d'un message e dans Android. J'ai essayé longtemps mais je ne connais pas la raison. Aidez-moi s'il vous plaît.

code:

     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 
    }  

Chat de bûche :

      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

72voto

Kyle Clegg Points 8441

Pour toute autre personne qui obtient cela, essayez de remplacer l'appel de méthode seul ou le nom de la variable par "" + varName.

Par exemple,

 Log.d("LOGCAT", getErrorMsg());

devient

 Log.d("LOGCAT", "" + getErrorMsg());

60voto

Haphazard Points 6804

Dans la capture, utilisez:

 String err = (ex.getMessage()==null)?"SD Card failed":ex.getMessage();
Log.e("sdcard-err2:", err);

Passer null au deuxième argument d'une Log renvoie cette erreur, quelle que soit la source.

11voto

Egor Points 15923

Peut-être qu'il n'y a tout simplement pas de message joint dans l'exception que vous captez. Essayez ex.printStackTrace(); au lieu. J'espère que cela t'aides.

7voto

Moises Portillo Points 416

Une autre façon d'utiliser est avec Log.getStackTraceString(e), exemple :

 Log.e(TAG, Log.getStackTraceString(e));

Vous pouvez en savoir plus à ce sujet dans la documentation Android.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X