私はウェブ上のいくつかのアンドロイドチュートリアルに従っています。できる限り彼のコードをコピーしようとしましたが、アプリケーションを実行するたびにクラッシュします。コンソールを調べたところ、Nullpointer 例外が原因であることがわかりました。アプリケーションは、サウンドを再生し、閉じてから別のレイアウトに移動することを目的としています。これが私のコードです。何が間違っていたか教えてください。
package com.greg.hello;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
public class MainActivity extends Activity {
MediaPlayer mpSplash;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
MediaPlayer mpSplash = MediaPlayer.create(this, R.raw.explosion);
mpSplash.start();
Thread logoTimer = new Thread(){
public void run(){
try{
int logoTimer=0;
while(logoTimer<8000){
sleep(100);
logoTimer=logoTimer+100;
}
startActivity(new Intent("com.greg.hello.CLEARSCREEN"));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
setContentView(R.layout.tutorial1);
e.printStackTrace();
}
finally{
finish();
}
}
};
logoTimer.start();
finish();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mpSplash.release();
startActivity(new Intent("com.greg.hello.TUTORIALONE"));
setContentView(R.layout.activity_main);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mpSplash.pause();
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mpSplash.start();
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
setContentView(R.layout.activity_main);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
setContentView(R.layout.activity_main);
}
}