Приложение неожиданно остановилось - PullRequest
0 голосов
/ 24 февраля 2011

Когда я запускаю следующее приложение в эмуляторе Android, приложение останавливается со следующим сообщением об ошибке: «Плеер приложения (процесс kilbo.net) неожиданно остановился. Пожалуйста, повторите попытку» Там нет ошибок, предупреждений, и я не могу найти ничего в отладчике, связанных с проблемой. Это общая проблема, которая возникает у меня, не только с этим приложением.

    package kilbo.net;

import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;

public class Player extends Activity implements Runnable, OnClickListener{

   private TextView Status;
   private ProgressBar progressBar;
   private Button StartMedia;
   private Button Stop;
   private MediaPlayer mp;      

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

       Status = (TextView) findViewById(R.id.Status);
        progressBar = (ProgressBar) findViewById(R.id.progressBar);
        StartMedia = (Button) findViewById(R.id.StartMedia);
        Stop = (Button) findViewById(R.id.Stop);

//Removing this two lines "fixes" the problem. So the error is probably related to this
        StartMedia.setOnClickListener(this);
        Stop.setOnClickListener(this);                
    }        

   @Override
    public void onClick(View v) {
        if(v.equals(StartMedia)){
            if(mp != null && mp.isPlaying()) return;
            MediaPlayer mp = new MediaPlayer();
            try {
                mp.setDataSource("http://kilbo.net/musik/Norrskenet.mp3");
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            mp.start();               
            Status.setText("playingMedia");         
            progressBar.setVisibility(ProgressBar.VISIBLE);
            progressBar.setProgress(0);
            progressBar.setMax(mp.getDuration());
            new Thread(this).start();
        }

        if(v.equals(Stop) && mp!=null){
            mp.stop();
            mp = null;            
            Status.setText("Stop");
            progressBar.setVisibility(ProgressBar.GONE);
        }

   }

    @Override
    public void run() {
        int CurrentPosition= 0;
        int total = mp.getDuration();
        while(mp!=null && CurrentPosition<total){
            try {
                Thread.sleep(1000);
                CurrentPosition= mp.getCurrentPosition();
            } catch (InterruptedException e) {
                return;
            } catch (Exception e){
                return;
            }            
            progressBar.setProgress(CurrentPosition);
        }
    }


}


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
  <Button id="@+id/Stop"  
            android:layout_width="125px" android:layout_height="50px"
            android:background="#FF222222" android:text="Start" />
  <Button id="@+id/StartMedia"  
            android:layout_width="125px" android:layout_height="50px"
            android:background="#FF222222" android:text="Start" />
   <ProgressBar id="@+id/progressBar"  
            android:layout_width="125px" android:layout_height="50px"
            android:background="#FF222222" android:text="Start"
            style="?android:attr/progressBarStyleHorizontal" />
  <TextView id="@+id/Status"  
            android:layout_width="125px" android:layout_height="50px"
            android:background="#FF222222" android:text="Start" />
</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 28 февраля 2011

Вы говорите, что ошибка

02-24 12:06:17.818: ERROR/AndroidRuntime(369): java.lang.RuntimeException: Unable to start activity ComponentInfo{kilbo.net/kilbo.net.Player}: java.lang.NullPointerException

Правильно ли объявлена ​​ваша деятельность в манифесте?

0 голосов
/ 24 февраля 2011

Я думаю, что вы получаете NPE, когда де Debugger пытается: StartMedia.setOnClickListener (это);

Вы должны попытаться найти Stacktrace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...