2016-07-01 19 views
1

Ich brauche mein MediaPlayer-Objekt, um als Klassenvariable sichtbar zu sein, anstatt lokal zu erstellen.MediaPlayer-Definition außerhalb onCreate wirft NullpointerException?

Aber wenn ich versuche, es zu initiieren wie this-

public class TextAct extends AppCompatActivity 
{ 

    MediaPlayer wavesMp = MediaPlayer.create(this, R.raw.river);//Line 132 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
    . 
    . 
    } 

Dieser schlägt mit gleichen Fehler wie gut

public class TextAct extends AppCompatActivity 
{ 

    MediaPlayer wavesMp; //Line 132 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
    wavesMp= MediaPlayer.create(this, R.raw.river); 
    . 
    } 

Logcat sagt-

Prozess: com.app24 .gg.relaaax, PID: 24202 java.lang.RuntimeException: Die Aktivität kann nicht instanziiert werden> ComponentInfo {com.app24.gg.relaaax/com.app 24.gg.relaaax.TextAct}: java.lang.NullPointerException bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2126) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2249) bei android. app.ActivityThread.access $ 800 (ActivityThread.java:141) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1212) bei android.os.Handler.dispatchMessage (Handler.java:102) bei Android .os.Looper.loop (Looper.java:136) bei android.app.ActivityThread.main (ActivityThread.java:5113) bei java.lang.reflect.Method.invokeNative (Native Methode) bei java.lang. reflect.Method.invoke (Methode.java:515) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (Zy goteInit.java:793) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:609) bei dalvik.system.NativeStart.main (native Methode) Verursacht durch: java.lang.NullPointerException bei android.content.ContextWrapper.getResources (ContextWrapper.java:89) bei android.view.ContextThemeWrapper.getResources (ContextThemeWrapper.java:78) bei android.media.MediaPlayer.create (MediaPlayer.java:844) bei com. app24.gg.relaaax.TextAct. (TextAct.java:132)

Antwort

0

MediaPlayer braucht Kontext. Und wenn die onCreate Methode nicht aufgerufen wird, dann ist Activity nicht vorbereitet und es ist Context kann nicht verwendet werden.