2011-12-07 2 views
1

저는 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 

내가 이해하지 수있는 문제가 정말 무엇인지 어떻게 해결할 수 있습니까? 제발 도와주세요.

+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

제안에 따라 문제를 해결합니다. 문제는 모든 클래스가 비 활동이지만 하나의 활동 클래스 만 있습니다. 컨텍스트를 얻은 다음 내 활동을 시작할 수 있습니다. – ylncn

관련 문제