NullPointerException : println needs a message in

2019-01-02 21:20发布

in my media player i play a song from sdcard. it shows error as NullPointerException : println needs a message e in android. i tried long time but i do not know the reason .please assist me.

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 
    }  

Log cat:

     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

标签: android
5条回答
几人难应
2楼-- · 2019-01-02 21:32

For anyone else that gets this, try replacing the lone method call or variable name with "" + varName.

For example,

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

becomes

Log.d("LOGCAT", "" + getErrorMsg());
查看更多
大哥的爱人
3楼-- · 2019-01-02 21:40

Another way that can to use is with Log.getStackTraceString(e), example:

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

You can read more about that in Android Documentation.

查看更多
泪湿衣
4楼-- · 2019-01-02 21:43

"println needs a megssage" was a very confusing message to receive (at least for me) when not using the println(...) method at all!!!

In my case and for that matter in all cases that generate this type of error there is a constellation you have to watch out for:

try{
...
}catch(..){
  // in here there is a reference to the Logger
}

Now the problem is that in your try{...} block you are using an uninitialized reference or some old instance that now points to null

Setup a break-point at the very beginning of your try block and debug your code step by step, you will find that at some point the code will try to access methods of some object that is null.

In this case I tend to blame your seek object !

Regards.

查看更多
何处买醉
5楼-- · 2019-01-02 21:45

In the catch, use:

String err = (ex.getMessage()==null)?"SD Card failed":ex.getMessage();
Log.e("sdcard-err2:",err);  
查看更多
牵手、夕阳
6楼-- · 2019-01-02 21:45

Maybe there's simply no message attached in exception you're catching. Try ex.printStackTrace(); instead. Hope this helps.

查看更多
登录 后发表回答