2011-12-07 7 views
1

私はアンドロイドプログラミングでは新しく、別のクラスやメディアプレーヤーから新しいアクティビティを開始する際に問題があります。私のアクティビティクラスにはメディアコントローラがあります。 私はこのような活動を呼び出そう:非アクティブなクラスのアクティビティを開始し、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 

ですどうすれば解決できますか。私を助けてください。

+0

あなたはこれを見てください: http://source.android.com/source/code-style.html あなたはアンドロイドのcodestyleの慣習に従っているなら。 次に、stackoverflowの使い方を知らないかもしれません。あなたのコードをコードブラケットに入れてください。今のようにあなたのコードを読むことは全く不可能です。私見では。 –

答えて

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 
} 

あなたはそのような空のオブジェクトを使用することはできません。 nullの代わりにthisまたは(yourclassname).thisを使用してください。

+0

ご返信ありがとうございます。しかし、私はこれを使用しようとすると(クラス名)。これは私のクラスとコンテキストとの不一致があります。私のクラスは単なるクラスではありません。私のクラスでアクティビティを呼び出すか、この問題を修正する他の方法はありますか? – ylncn

+0

作成時にヘルパークラスにコンテキストを送信してみることができます。 詳細はこのスレッドをご覧ください:http://stackoverflow.com/questions/5339941/android-how-to-use-getapplication-and-getapplicationcontext-from-non-activityまたはhttp://stackoverflow.com/questions/5498669/android-needing-context-is-non-activity-classes –

+0

あなたの提案に応じて、私は問題を解決します。問題はすべて私のクラスは非アクティビティですが、アクティビティクラスは1つだけです。私はそれからコンテキストを取得し、私は私の活動を開始することができます。 – ylncn

関連する問題