Ich habe eine Klasse für den MediaPlayer erstellt, so dass ich von mehreren Klassen zugreifen kann, da ich Medien in einmal Aktivität starten und in einem anderen beenden muss. Beim Versuch, den MediaPlayer aufzurufen, erhalte ich einen Fehler. Ich verstehe nicht, wo ich falsch liege, da ich den Fehler nicht vollständig verstehe. Vor dem Erstellen der Klasse für den MediaPlayer funktionierte es, aber es erlaubte mir nicht das zu tun, was ich wollte. Könnte jemand mir raten, wie ich mein Problem oder eine andere Art des Zugriffs auf den MediaPlayer lösen kann. Danke im Voraus.Android MediaPlayer in seiner eigenen Klasse verursacht App-Absturz
In der MainActivity-Klasse rufe ich den Media Player an.
public class MainActivity extends AppCompatActivity {
Music gm = new Music();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the Main Activity.
setContentView(R.layout.activity_main);
gm.menuSound(true);
}
}
Die Klasse Mediaplayer ist, wo der Media Player erstellt wird und wo der Mediaplayer gestartet und gestoppt wird.
public class Music extends gameActivity{
Context context;
MediaPlayer menu;
MediaPlayer soundtrack;
MediaPlayer death;
MediaPlayer start;
public void menuSound(boolean x) {
if(menu == null) {
menu = MediaPlayer.create(context, R.raw.menumusic);
menu.setVolume(100, 100);
}
if(x)
menu.start();
if(!x)
menu.stop();
}
}
--------- Anfang crash E/Android Runtime: fatal EXCEPTION: main Prozess: com.example.sam.myfirstapp, PID: 2395 Java .lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo {com.beispiel.sam.meinfirstapp/com.beispiel.sam.myfirstapp.MainActivity}: java.lang.NullPointerException: Versuch, die virtuelle Methode 'android.content.res.Resources android aufzurufen .content.Context.getResources() 'für einen Nullobjektverweis bei android.app.ActivityThread.performLaunchActiv ity (ActivityThread.java:2646) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2707) bei android.app.ActivityThread.-wrap12 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1460) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:154) bei android.app.ActivityThread.main (ActivityThread .java: 6077) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:865) bei com.android.internal. os.ZygoteInit.main (ZygoteInit.java:755) verursacht durch: java.lang.NullP ointerException: Versuch, virtuelle Methode 'android.content.res.Resources android.content.Context.getResources()' auf einem Nullobjekt Referenz bei android.media.MediaPlayer.create (MediaPlayer.java:931) bei Android aufzurufen. media.MediaPlayer.create (MediaPlayer.java:914) bei com.example.sam.myfirstapp.Music.menuSound (Music.java:21) bei com.example.sam.myfirstapp.MainActivity.onCreate (MainActivity.java: 18) bei android.app.Activity.performCreate (Activity.java:6664) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1118) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2599) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2707) bei android.app.ActivityThread.-wrap12 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1460) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:154) bei android.app.ActivityThread.main (ActivityThread.Java: 6077) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java: 865) bei com.android.internal.os .ZygoteInit.main (ZygoteInit.java:755)
Mögliche Duplikat [? Was für eine Nullpointer ist, und wie kann ich es beheben] (http://stackoverflow.com/questions/218384/what -is-a-nullpointerexception-and-how-do-i-fix-it) – pathfinderelite