App stürtzt immer ab wenn ich auf den Button klicke

  • 5 Antworten
  • Letztes Antwortdatum
N

nlfell

Ambitioniertes Mitglied
0
Ich habe eine App mit verschiedenen Sound Buttons gemacht und davor immer reset und alles gemacht (könnt ihr im Quellcode sehen den ich in den Spoiler mache) aber immer wenn ich jetzt einen Button klicke kommt ".." wurde angehalten. Wenn ich aber nur beim ersten Button reset und alles machen klappt alles super aber ich kann halt die anderen Buttons alle gleichzeitig abspielen lassen..

package de.nilslambertz.sprachmemoapp;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import de.nilslambertz.sprachmemoapp.R;

public class Hauptmenue extends Activity {

public MediaPlayer mp;
ImageButton imageButton1;
ImageButton imageButton2;
ImageButton imageButton3;
ImageButton imageButton4;
ImageButton imageButton5;
ImageButton imageButton6;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hauptmenue);

imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
imageButton2 = (ImageButton) findViewById(R.id.imageButton2);
imageButton3 = (ImageButton) findViewById(R.id.imageButton3);
imageButton4 = (ImageButton) findViewById(R.id.imageButton4);
imageButton5 = (ImageButton) findViewById(R.id.imageButton5);
imageButton6 = (ImageButton) findViewById(R.id.imageButton6);


imageButton1.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
if(mp.isPlaying())
{
mp.reset();
mp = MediaPlayer.create(getApplicationContext(), R.raw.sebhalli);
mp.start();
}

else {
mp = MediaPlayer.create(getApplicationContext(), R.raw.sebhalli);
mp.start();

}
}

});

imageButton2.setOnClickListener(new OnClickListener() {


public void onClick(View v) {
if(mp.isPlaying())
{
mp.reset();
mp = MediaPlayer.create(getApplicationContext(), R.raw.jadergehtwirklichab);
mp.start();}
else {
mp = MediaPlayer.create(getApplicationContext(), R.raw.jadergehtwirklichab);
mp.start();

}
}
});

imageButton3.setOnClickListener(new OnClickListener() {


public void onClick(View v) {
if(mp.isPlaying())
{
mp.reset();

mp = MediaPlayer.create(getApplicationContext(), R.raw.netill);
mp.start();}

else {
mp = MediaPlayer.create(getApplicationContext(), R.raw.netill);
mp.start();

}
}

});

imageButton4.setOnClickListener(new OnClickListener() {


public void onClick(View v) {
if(mp.isPlaying())
{
mp.reset();

mp = MediaPlayer.create(getApplicationContext(), R.raw.ohkinnas);
mp.start();}

else {
mp = MediaPlayer.create(getApplicationContext(), R.raw.ohkinnas);
mp.start();

}
}


});

imageButton5.setOnClickListener(new OnClickListener() {


public void onClick(View v) {
if(mp.isPlaying())
{
mp.reset();

mp = MediaPlayer.create(getApplicationContext(), R.raw.sagmalmhenning);
mp.start();}

else {
mp = MediaPlayer.create(getApplicationContext(), R.raw.sagmalmhenning);
mp.start();

}
}


});

imageButton6.setOnClickListener(new OnClickListener() {


public void onClick(View v) {
if(mp.isPlaying())
{
mp.reset();

mp = MediaPlayer.create(getApplicationContext(), R.raw.secondif);
mp.start();}

else {
mp = MediaPlayer.create(getApplicationContext(), R.raw.secondif);
mp.start();

}
}


});


}
}
 
Du solltest mal die Fehlermeldung posten oder zumindest selber mal lesen ;), dann wirst du wahrscheinlich feststellen, dass eine NullPointerException geworfen wird. Und zwar immer bei der Abfrage
Code:
if(mp.isPlaying())
, denn mp ist zu Beginn Null.
 
Und was kann ich dagegen machen?:)

Fehler:
10-03 14:36:37.196: E/AndroidRuntime(26107): FATAL EXCEPTION: main
10-03 14:36:37.196: E/AndroidRuntime(26107): Process: de.nilslambertz.sprachmemoapp, PID: 26107
10-03 14:36:37.196: E/AndroidRuntime(26107): java.lang.NullPointerException
10-03 14:36:37.196: E/AndroidRuntime(26107): at de.nilslambertz.sprachmemoapp.Hauptmenue$2.onClick(Hauptmenue.java:57)
10-03 14:36:37.196: E/AndroidRuntime(26107): at android.view.View.performClick(View.java:4640)
10-03 14:36:37.196: E/AndroidRuntime(26107): at android.view.View$PerformClick.run(View.java:19421)
10-03 14:36:37.196: E/AndroidRuntime(26107): at android.os.Handler.handleCallback(Handler.java:733)
10-03 14:36:37.196: E/AndroidRuntime(26107): at android.os.Handler.dispatchMessage(Handler.java:95)
10-03 14:36:37.196: E/AndroidRuntime(26107): at android.os.Looper.loop(Looper.java:136)
10-03 14:36:37.196: E/AndroidRuntime(26107): at android.app.ActivityThread.main(ActivityThread.java:5579)
10-03 14:36:37.196: E/AndroidRuntime(26107): at java.lang.reflect.Method.invokeNative(Native Method)
 
Code:
MediaPlayer mp = new MediaPlayer();

Mir scheint, als hättest du dir ein Projekt ausgesucht, das dich im Moment noch ein wenig überfordert. Ich würde dir raten, erstmal grundlegende Java-Dinge zu lernen und erst dann mit Android weiter zu machen.
 
Damit stürtzt die App zwar nichtmehr ab, aber die Sounds werden wieder alle gleichzeitig abgespielt
 
Tipp: "Runnable" suchen und vielleicht dabei noch die Stichworte "Thread" und "Handler"..
(ist damit eher unsauber implementiert, aber fürs Verständnis auf jeden Fall nicht verkehrt)
Da du von "verschiedenen Sounds" geschrieben hast, ist der Media Player ggf auch nicht die richtige Wahl. Vielleicht kommst du mit dem SoundPool besser zum Ziel (damit will ich nicht sagen, dass es mit dem MP nicht funktioniert.. Je nach Einsatzzweck macht das eine mehr Sinn bzw das andere.)
 
  • Danke
Reaktionen: nlfell

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
596
Gerdchen07
G
L
Antworten
2
Aufrufe
554
Lexub
L
migi01
Antworten
26
Aufrufe
1.990
migi01
migi01
Zurück
Oben Unten