1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Programm funktioniert nur im Emulator

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Ireneus, 20.06.2012.

  1. Ireneus, 20.06.2012 #1
    Ireneus

    Ireneus Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    18.11.2011
    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.
     
  2. MusicJunkie666, 20.06.2012 #2
    MusicJunkie666

    MusicJunkie666 Android-Ikone

    Beiträge:
    4,180
    Erhaltene Danke:
    583
    Registriert seit:
    16.01.2012
    Wenn du willst, kann ich die App auf meinem Evo testen, vielleicht liegts am Handy.
     
  3. Ireneus, 20.06.2012 #3
    Ireneus

    Ireneus Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    18.11.2011
    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
     
  4. MusicJunkie666, 20.06.2012 #4
    MusicJunkie666

    MusicJunkie666 Android-Ikone

    Beiträge:
    4,180
    Erhaltene Danke:
    583
    Registriert seit:
    16.01.2012
    Die komplette .apk schicken meine ich ;)
     
  5. Ireneus, 20.06.2012 #5
    Ireneus

    Ireneus Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    18.11.2011
  6. MusicJunkie666, 20.06.2012 #6
    MusicJunkie666

    MusicJunkie666 Android-Ikone

    Beiträge:
    4,180
    Erhaltene Danke:
    583
    Registriert seit:
    16.01.2012
    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
     
  7. Ireneus, 20.06.2012 #7
    Ireneus

    Ireneus Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    18.11.2011
    hast du mal über de code drübergeguckt?
     
  8. strider, 20.06.2012 #8
    strider

    strider Erfahrener Benutzer

    Beiträge:
    208
    Erhaltene Danke:
    45
    Registriert seit:
    30.09.2011
    Phone:
    Nexus S
    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.
     
    Ireneus bedankt sich.
  9. MusicJunkie666, 21.06.2012 #9
    MusicJunkie666

    MusicJunkie666 Android-Ikone

    Beiträge:
    4,180
    Erhaltene Danke:
    583
    Registriert seit:
    16.01.2012
    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
     
    Ireneus bedankt sich.
  10. DieGoldeneMitte, 21.06.2012 #10
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Guck doch einfach mal ins LogCat vom Gerät rein.
    Da steht, wieso das Programm abstürzt.
    Ich würde übrigens auf Speichermangel tippen.
     
    Ireneus bedankt sich.
  11. Ireneus, 21.06.2012 #11
    Ireneus

    Ireneus Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    18.11.2011
    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
     
  12. Sentenza, 21.06.2012 #12
    Sentenza

    Sentenza Erfahrener Benutzer

    Beiträge:
    224
    Erhaltene Danke:
    65
    Registriert seit:
    15.08.2011
    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++;
    }
    });
    }
    
    }
     
    Ireneus bedankt sich.
  13. Ireneus, 21.06.2012 #13
    Ireneus

    Ireneus Threadstarter Neuer Benutzer

    Beiträge:
    15
    Erhaltene Danke:
    0
    Registriert seit:
    18.11.2011
    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.
     
  14. mradlmaier, 21.06.2012 #14
    mradlmaier

    mradlmaier Gewerbliches Mitglied

    Beiträge:
    158
    Erhaltene Danke:
    17
    Registriert seit:
    28.10.2011
    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.
     

Diese Seite empfehlen