Programm funktioniert nur im Emulator

I

Ireneus

Neues Mitglied
0
Hallo, ich bin android newbie. Meine App soll bei Tastendruck 10 verschiedene mp3 abspielen. Auf dem Emulator tut sie was sie soll. Auf dem Galaxy stürzt sie nach der sechsten mp3 ab.
 
Wenn du willst, kann ich die App auf meinem Evo testen, vielleicht liegts am Handy.
 
package sound.mit.counter;


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;

public class SoundmitcounterActivity extends Activity {
/** Called when the activity is first created. */

MediaPlayer [] letter_audio = new MediaPlayer[20];
int counter = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
letter_audio[0] = MediaPlayer.create(getBaseContext(),R.raw.audio_e);
letter_audio[1] = MediaPlayer.create(getBaseContext(),R.raw.audio_n);
letter_audio[2] = MediaPlayer.create(getBaseContext(),R.raw.audio_ne);
letter_audio[3] = MediaPlayer.create(getBaseContext(),R.raw.audio_en);
letter_audio[4] = MediaPlayer.create(getBaseContext(),R.raw.audio_a);
letter_audio[5] = MediaPlayer.create(getBaseContext(),R.raw.audio_an);
letter_audio[6] = MediaPlayer.create(getBaseContext(),R.raw.audio_na);
letter_audio[7] = MediaPlayer.create(getBaseContext(),R.raw.audio_s);
letter_audio[8] = MediaPlayer.create(getBaseContext(),R.raw.audio_se);
letter_audio[9] = MediaPlayer.create(getBaseContext(),R.raw.audio_es);

init();
}
public void init(){
Button neu_button0 = (Button) findViewById(R.id.button1);
neu_button0.setOnClickListener(new OnClickListener(){
public void onClick (View v) {
letter_audio[counter].start();
counter++;
}
});
}

}

Der ursprüngliche Beitrag von 21:18 Uhr wurde um 21:19 Uhr ergänzt:

sehr gerne wohin soll ich das schicken
 
Die komplette .apk schicken meine ich ;)
 
Bei Klick auf den Button tut sich garnichts. Bei mehrmaligen Klicken hängt die App sich auf.

Gesendet von meinem HTC EVO 3D X515m mit Tapatalk 2
 
hast du mal über de code drübergeguckt?
 
Von manchen Sachen kann man zwar nie genug haben aber eine MediaPlayer Instanz reicht aus um 20 Titel abzuspielen. Du brauchst kein Array mit 20 MediaPlayern mit jeweils einem Titel.
 
  • Danke
Reaktionen: Ireneus
Jap, 20 Instanzen davon machen nicht viel Sinn, glaube aber nicht, dass das der Fehler ist...

Edit: Nach Neuinstallation höre ich bei Klick auf den Button eine Stimme. Schätze mal, das gehört so :D
 
  • Danke
Reaktionen: Ireneus
Guck doch einfach mal ins LogCat vom Gerät rein.
Da steht, wieso das Programm abstürzt.
Ich würde übrigens auf Speichermangel tippen.
 
  • Danke
Reaktionen: Ireneus
package sound.mit.counter;


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;

public class SoundmitcounterActivity extends Activity {
/** Called when the activity is first created. */

MediaPlayer mp;
int counter = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
public void init(){
Button neu_button0 = (Button) findViewById(R.id.button1);
neu_button0.setOnClickListener(new OnClickListener(){
public void onClick (View v) {
if (counter == 0){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_e);
mp.start();
}
if (counter == 1){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_a);
mp.start();
}
if (counter == 2){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_an);
mp.start();
}
if (counter == 3){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_na);
mp.start();
}
if (counter == 4){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s);
mp.start();
}
if (counter == 5){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s);
mp.start();
}
if (counter == 6){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s);
mp.start();
}
if (counter == 7){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s);
mp.start();
}
if (counter == 8){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s);
mp.start();
}
if (counter == 9){
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s);
mp.start();
}
counter++;
}
});
}

}


Ich habe es jetzt mal auf diese Weise probiert. Ich denke es sollte nun so sein das ich nur einen MediaPlayer nutze, aber immer etwas anderes da rein Lade. Leider besteht der Fehler immer noch.
Die LogCat (habe mein Handy jetzt tatsächlich am Laptop) sagt zwar ne Menge leider kenne ich mich da nicht aus. Versuche erst mal zu googln.
bekomme auf jeden Fall error (1,-17)

Der ursprüngliche Beitrag von 16:38 Uhr wurde um 16:44 Uhr ergänzt:

https://skydrive.live.com/redir?resid=9A65194B0DEB1FE6!17140&authkey=!AJLriyS8-5SO7QI

Das wäre die LogCat
 
Dein Logcat kann ich nicht sehen. Bei mir funktioniert der Quellcode, allerdings steht in der Hilfe zu MediaPlayer.create dass man release() aufrufen soll, damit nicht zuviele Instanzen erzeugt werden. Vielleicht ist das bei dir der Fall. Probier mal das hier, allerdings werden die MP3s dann nicht ganz abgespielt wenn man mehrmals auf den button klickt:
Code:
package sound.mit.counter;
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;

public class SoundCounterActivity extends Activity {
/** Called when the activity is first created. */

MediaPlayer mp;
int counter = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
[COLOR=Red]mp = new MediaPlayer();  // Damit das erste release() nicht fehlschlägt![/COLOR]
}
public void init(){
Button neu_button0 = (Button) findViewById(R.id.button1);
neu_button0.setOnClickListener(new OnClickListener(){
public void onClick (View v) {
if (counter == 0){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_e) ;
mp.start();

}
if (counter == 1){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_a) ;
mp.start();

}
if (counter == 2){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_an );
mp.start();

}
if (counter == 3){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_na );
mp.start();

}
if (counter == 4){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s) ;
mp.start();

}
if (counter == 5){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s) ;
mp.start();

}
if (counter == 6){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s) ;
mp.start();

}
if (counter == 7){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s) ;
mp.start();

}
if (counter == 8){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s) ;
mp.start();

}
if (counter == 9){
[COLOR=Red]mp.release();[/COLOR]
mp = MediaPlayer.create(getBaseContext(),R.raw.audio_s) ;
mp.start();
}
counter++;
}
});
}

}
 
  • Danke
Reaktionen: Ireneus
Super so funktioniert es!!!
Mein Sohn und ich sind euch allen sehr dankbar.
Merkwürdiger Weise habe ich so etwas ähnliches Gestern schon probiert, muss es irgendwie falsch gemacht haben.
 
DieGoldeneMitte schrieb:
Guck doch einfach mal ins LogCat vom Gerät rein.
Da steht, wieso das Programm abstürzt.
Ich würde übrigens auf Speichermangel tippen.

Ich würde auf genau das gleiche tippen. Siehst Du dann im Logcat, und meist wird der Bidlschirm dann schwarz für einige Sekunden, bis die Absturz Meldung kommt.

Die Sache mit dem Emulator ist die:
Zwar kannst Du dein AVD mit dem gleichen Memory einstellen, wie dein Testgerät, nur auf deinem Testgerät hast Du meist noch etliche andere Apps installiert und laufen.

Im übrigen, ist die Aussage Speichermangel nicht ganz korrekt. Der Speichermangel entsteht typischweise durch ein Memory-Leaks.
 

Ähnliche Themen

S
Antworten
4
Aufrufe
990
Sempervivum
S
O
Antworten
15
Aufrufe
2.954
ORHUX
O
SaniMatthias
Antworten
19
Aufrufe
942
swa00
swa00
Zurück
Oben Unten