2016-07-01 6 views
1

Мне нужно, чтобы мой объект MediaPlayer был видимым как переменная класса, а не локальный для oncreate.Определение MediaPlayer вне onCreate throws NullpointerException?

Но когда я пытаюсь запустить его, как this-

public class TextAct extends AppCompatActivity 
{ 

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

Это терпит неудачу с такой же ошибкой, как хорошо

public class TextAct extends AppCompatActivity 
{ 

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

LogCat says-

процесса: com.app24 .gg.relaaax, PID: 24202 java.lang.RuntimeException: Невозможно создать экземпляр активности> ComponentInfo {com.app24.gg.relaaax/com.app 24.gg.relaaax.TextAct}: java.lang.NullPointerException в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2126) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2249) на андроид. app.ActivityThread.access $ 800 (ActivityThread.java:141) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1212) на android.os.Handler.dispatchMessage (Handler.java:102) на android .os.Looper.loop (Looper.java:136) at android.app.ActivityThread.main (ActivityThread.java:5113) at java.lang.reflect.Method.invokeNative (собственный метод) at java.lang. reflect.Method.invoke (Method.java:515) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (Zy goteInit.java:793) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:609) в dalvik.system.NativeStart.main (нативный метод) Вызванный: java.lang.NullPointerException на android.content.ContextWrapper.getResources (ContextWrapper.java:89) на android.view.ContextThemeWrapper.getResources (ContextThemeWrapper.java:78) в android.media.MediaPlayer.create (MediaPlayer.java:844) на ком. app24.gg.relaaax.TextAct. (TextAct.java:132)

ответ

0

MediaPlayer нуждается в контексте. И если метод onCreate не вызывается, то Activity не подготовлен, и его нельзя использовать Context.

 Смежные вопросы

  • Нет связанных вопросов^_^