首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NullPointerException

NullPointerException
EN

Stack Overflow用户
提问于 2012-11-27 20:41:14
回答 5查看 514关注 0票数 3

我发布了一个免费的应用程序图像滑块,里面有为小孩子准备的口语。几周前,我收到了第一份坠机报告。这种情况似乎很少发生(每周一次)。

报告指出: Splash.onCreate()中的NullPointerException

堆栈tace显示以下消息:

代码语言:javascript
复制
java.lang.RuntimeException: Unable to start activity 
java.lang.NullPointerException
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
    at android.app.ActivityThread.access$600(ActivityThread.java:130)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4745)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
    at co.uk.musenuovo.michal.Splash.onCreate(Splash.java:18)
    at android.app.Activity.performCreate(Activity.java:5008)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)

我在spash活动中的代码(初始屏幕显示图像,播放曲调5秒):

代码语言:javascript
复制
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;

public class Splash extends Activity {

    MediaPlayer ourSong;

    @Override
    protected void onCreate(Bundle ShowSplashPage) {
        // TODO Auto-generated method stub
        super.onCreate(ShowSplashPage);
        setContentView(R.layout.splash);
        ourSong = MediaPlayer.create(Splash.this, R.raw.xylophone_open);
        ourSong.start();
        Thread timer = new Thread() {

            public void run() {
                try{
                    sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    Intent openStartingPoint = new Intent("co.uk.musenuovo.michal.STARTINGPOINT");
                    startActivity(openStartingPoint);

                }
            }

        };
        timer.start();

    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        ourSong.release();
        finish();
    }

}

该错误明显指向spash活动中的onstart。这是因为我忘记导入某个库了吗?还是我忘了分配什么东西?我对java非常陌生,不知道如何调试和找出问题所在。我读了很多关于NullPointerException的文章,但这似乎是一个模糊的错误。谢谢你的帮助。

EN

回答 5

Stack Overflow用户

发布于 2012-11-27 20:49:29

可能是null..you需要检查ourSong变量才能使用它

代码语言:javascript
复制
ourSong  = MediaPlayer.create(Splash.this, R.raw.xylophone_open);

    if(ourSong  == null) {
        Log.v("LOG", "Create() on MediaPlayer failed.");
    }
票数 3
EN

Stack Overflow用户

发布于 2013-08-14 22:27:24

您应该始终空检查来自包的数据,包括包本身。

票数 0
EN

Stack Overflow用户

发布于 2014-12-09 20:19:51

一个值显然是null,它可以是未初始化的变量'ourSong‘,也可以是用来运行方法的包。为包添加一行,如System.out.println(ourSong)和/或另一行,并发现哪个变量为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13584482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档