NullPointerException:println在android中需要一条消息

时间:2011-05-16 14:07:47

标签: android

在我的媒体播放器中我从sdcard播放一首歌。它显示错误为NullPointerException:println在android中需要一条消息e。我试了很久但我不知道原因。请帮助我。

代码:

    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

5 个答案:

答案 0 :(得分:66)

对于其他任何人来说,尝试用“+ + varName”替换单独的方法调用或变量名。

例如,

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

变为

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

答案 1 :(得分:56)

在捕获中,使用:

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

答案 2 :(得分:11)

也许在您捕获的异常中没有附加消息。试试ex.printStackTrace(); 代替。希望这会有所帮助。

答案 3 :(得分:5)

可以使用的另一种方法是使用Log.getStackTraceString(e),例如:

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

您可以在Android Documentation.

中详细了解相关内容

答案 4 :(得分:3)

“println需要一个megssage”是一个非常令人困惑的消息(至少对我而言)完全不使用println(...)方法!!!

就我而言,在所有产生此类错误的情况下都有一个你需要注意的星座:

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

现在的问题是,在您的try{...}数据块中,您使用的是未初始化的引用或现在指向null的旧实例

在try块的最开始设置一个断点并逐步调试你的代码,你会发现在某些时候代码会尝试访问一些null的对象的方法。

在这种情况下,我倾向于责备你的 seek 对象!

问候。