在非活动类上启动活动并在Android上使用媒体播放器

时间:2011-12-07 13:51:14

标签: android

我是android编程的新手,我在从另一个类和媒体播放器开始新活动时遇到了问题。我的活动类有一个媒体控制器。 我试着像这样调用这个活动:

public void Collide(FlxCore object1, FlxCore object2) {
        player.kill();
        Context mContext = null;
        Intent myIntent = new Intent(mContext, soru.class);
        mContext.startActivity(myIntent);
    }

我的活动是:

public class soru extends Activity {
    private VideoView mVideoView;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.soru);
        mVideoView = (VideoView) findViewById(R.id.surface_view);
        mVideoView.setVideoURI(Uri.parse("android.resource://"
                + getPackageName() + "/" + R.raw.arabaa));
        mVideoView.setMediaController(new MediaController(this));
        mVideoView.requestFocus();
    }

}

然后问题是

12-07 13:14:54.675: W/dalvikvm(526): threadid=9: thread exiting with uncaught exception (group=0x40015560)
12-07 13:14:54.675: E/AndroidRuntime(526): FATAL EXCEPTION: Thread-10
12-07 13:14:54.675: E/AndroidRuntime(526): java.lang.NullPointerException
12-07 13:14:54.675: E/AndroidRuntime(526):  at android.content.ComponentName.<init>(ComponentName.java:75)
12-07 13:14:54.675: E/AndroidRuntime(526):  at android.content.Intent.<init>(Intent.java:2702)
12-07 13:14:54.675: E/AndroidRuntime(526):  at org.myname.flixeldemo.GameState$3.Collide(GameState.java:101)
12-07 13:14:54.675: E/AndroidRuntime(526):  at org.flixel.FlxG.overlapArrayList(FlxG.java:456)
12-07 13:14:54.675: E/AndroidRuntime(526):  at org.myname.flixeldemo.GameState.update(GameState.java:95)
12-07 13:14:54.675: E/AndroidRuntime(526):  at org.flixel.FlxGame.onEnterFrame(FlxGame.java:327)
12-07 13:14:54.675: E/AndroidRuntime(526):  at org.flixel.FlxGameView$GameThread.run(FlxGameView.java:55)
12-07 13:14:54.815: E/MediaPlayer(526): pause called in state 64
12-07 13:14:54.815: E/MediaPlayer(526): error (-38, 0)
12-07 13:14:54.815: E/MediaPlayer(526): Error (-38,0)
12-07 13:19:54.830: I/Process(526): Sending signal. PID: 526 SIG: 9

我无法理解问题究竟是什么,我该如何解决。请帮助我。

1 个答案:

答案 0 :(得分:0)

这个并不难理解。

您的错误指向NullPointerException,这意味着您正在尝试使用空的或不存在的对象。

快速查看代码可以发现问题:

Collide(FlxCore object1, FlxCore object2) {
    player.kill();
    Context mContext = null; // <<- You're creating an empty context object
    Intent myIntent = new Intent(mContext, soru.class); // And then
    mContext.startActivity(myIntent); // Use it for multiple functions
}

你不能使用那样的空对象。尝试使用this(yourclassname).this代替null