2013-05-13 82 views
-1

这里的报告:显示java.lang.NullPointerException ....崩溃报告

java.lang.RuntimeException: Unable to start activity ComponentInfo{rs.androidaplikacije.zastaveigradovi/rs.androidaplikacije.zastaveigradovi.PogresanOdgovor}: java.lang.NullPointerException 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3687) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
at rs.androidaplikacije.zastaveigradovi.PogresanOdgovor.onCreate(PogresanOdgovor.java:56) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
... 11 more 

这基本上是一个弹出式的活动,说:“错误的答案”用一些声音。下面是类:

public class PogresanOdgovor extends Activity{ 
    MediaPlayer zvuk; 
    TextView pogresno; 
    String tacanOdgovor; 
    String tacno; 

    public final int delayTime = 2500; 
    private Handler myHandler = new Handler(); 

    public void onUserInteraction(){ 
     myHandler.removeCallbacks(zatvoriPopup); 
     myHandler.postDelayed(zatvoriPopup, delayTime); 
    } 
    private Runnable zatvoriPopup = new Runnable(){ 
     public void run(){ 
      finish(); 
     } 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.pogresno); 

     Bundle extras = getIntent().getExtras(); 
     if(extras !=null) { 
      tacno = extras.getString("tacanOdgovor"); 
     } 

     SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
     boolean zvuci = getPrefs.getBoolean("checkbox", true); 

     myHandler.postDelayed(zatvoriPopup, delayTime); 

     inicijalizujVarijable(); 

     if(zvuci == true){ 
      zvuk.start(); 
      } 

      } 

    private void inicijalizujVarijable() { 
     Typeface pogresanFont = Typeface.createFromAsset(getAssets(), "Bebas.ttf"); 
     zvuk = MediaPlayer.create(this, R.raw.aah); 

     pogresno = (TextView) findViewById(R.id.tvPogresno); 

     pogresno.setTypeface(pogresanFont); 
     pogresno.setText("Pogrešan odgovor!\nTačan odgovor je:\n\n" + tacno); 

    } 
    } 

错误的ON LINE:

zvuk.start(); 

这正是我打电话给我的sound.I不明白这一点。如果有时有效,为什么不总是?

+0

zvuk.start(); ... – marjanbaz 2013-05-13 16:55:23

回答

0

事后您的MediaPlayer有没有released

+0

你可以看到我上面的所有代码。我不知道我应该释放它。我什么时候应该释放它? – marjanbaz 2013-05-13 17:02:25

+0

使用setOnCompletionListener()安装一个监听器,通知您何时播放媒体,您可以释放它。如果过早停止()播放并且不想继续播放,则另外释放它。 – 2013-05-13 17:17:43

+0

试过了,仍然收到错误报告。我不明白...我怎么一会儿就得到这个错误,而不是所有的时间?如果我的代码中有错误,它应该会一直崩溃。 – marjanbaz 2013-05-14 18:05:23