Wie NullPointerException Fehler in Android zu lösen?

Der folgende Code läuft problemlos im Emulator von Eclipse, es treten jedoch Probleme auf, wenn ich ihn auf meinem Android-Telefon und -Tablet ausführe.

public class RingerActivity extends Activity{
/** Called when the activity is first created. */
Button press;
boolean tone = true;
MediaPlayer mp;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mp = new MediaPlayer();
    mp = MediaPlayer.create(RingerActivity.this, R.raw.alarm);
    //Error occurs at here
    mp.start();

    Handler h = new Handler();
    Runnable stopPlaybackRun = new Runnable() {
        public void run(){
            mp.stop();
            mp.release();
        }    
    };
    h.postDelayed(stopPlaybackRun, 20 * 1000);

    AudioManager manager = (AudioManager)getSystemService(AUDIO_SERVICE);
    if(manager!=null){
        manager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        int maxVolume = manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        manager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0);
    }
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){

    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP){
        Toast.makeText(this, "Volume Up", Toast.LENGTH_LONG).show();
        return true;
    }

    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
        Toast.makeText(this, "Volume Down", Toast.LENGTH_LONG).show();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

Ich erhalte eine "NullPointException" in der Zeile "mp.start ()". Ich habe eine Weile an diesem Problem gearbeitet, aber ich weiß wirklich nicht, was passiert. Ich habe es sowohl auf meinem Android-Smartphone als auch auf meinem Tablet (Gingerbread und ICS) versucht, aber die App Force wird geschlossen. Ich brauche Hilfe von euch ... danke ...

Logcat

11-09 15:41:09.909: E/AndroidRuntime(11975): FATAL EXCEPTION: main
11-09 15:41:09.909: E/AndroidRuntime(11975): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testing.ringer/com.testing.ringer.RingerActivity}: java.lang.NullPointerException
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1872)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.app.ActivityThread.access$1500(ActivityThread.java:135)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.os.Looper.loop(Looper.java:150)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.app.ActivityThread.main(ActivityThread.java:4385)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at java.lang.reflect.Method.invokeNative(Native Method)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at java.lang.reflect.Method.invoke(Method.java:507)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at dalvik.system.NativeStart.main(Native Method)
11-09 15:41:09.909: E/AndroidRuntime(11975): Caused by: java.lang.NullPointerException
11-09 15:41:09.909: E/AndroidRuntime(11975):    at com.testing.ringer.RingerActivity.onCreate(RingerActivity.java:23)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
11-09 15:41:09.909: E/AndroidRuntime(11975):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
11-09 15:41:09.909: E/AndroidRuntime(11975):    ... 11 more

Rufton-Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.testing.ringer"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <uses-permission android:name="android.permission.RECORD_AUDIO"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".RingerActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage