1. Jacob91195, 30.11.2011 #1
    Jacob91195

    Jacob91195 Threadstarter Neuer Benutzer

    Hallo,

    ich bin grad an einer Spaß-App dran und habe ein Problem mit der onPause Methode. Immer wenn ich die App schließen will bekomme ich den Fehler, dass die App unerwartet geschlossen wurde(App stürzt ab).

    Wo ist der Fehler?
    Code:
    
    package app.best.of.hakan;
    
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.TextView;
    import android.media.MediaPlayer;
    import android.view.View;
    
    
    
    public class StartingPoint extends Activity {
    	Button lache, marius, uhh, uselmann, los,  gottlob;
    	TextView display;
    	MediaPlayer lacheMusic, mariusMusic, uhhMusic, uselmannMusic, losMusic, gottlobMusic;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            lache=(Button)findViewById(R.id.lache);
            marius=(Button)findViewById(R.id.marius);
            uhh =(Button) findViewById(R.id.uhh);
            uselmann=(Button) findViewById(R.id.uselmann);
            los=(Button) findViewById(R.id.los);
            gottlob=(Button) findViewById(R.id.gottlob);
    ;
            final MediaPlayer lacheMusic = MediaPlayer.create(this, R.raw.lache);
            final MediaPlayer mariusMusic = MediaPlayer.create(this, R.raw.marius);
            final MediaPlayer uhhMusic = MediaPlayer.create(this, R.raw.uhh);
            final MediaPlayer uselmannMusic = MediaPlayer.create(this, R.raw.uselmann);
            final MediaPlayer losMusic = MediaPlayer.create(this, R.raw.los);
            final MediaPlayer gottlobMusic = MediaPlayer.create(this, R.raw.gottlob);
            
        	
    
            lache.setOnClickListener(new View.OnClickListener() {
    		
    		public void onClick(View v) {
    			
    			lacheMusic.start();
    			
    			
    		
    			}
    		
    		});   
            marius.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    			
    				mariusMusic.start();
    		
    			}
    		});
            uhh.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    			
    				uhhMusic.start();
    				
    			}
    		});
            uselmann.setOnClickListener(new View.OnClickListener() {		
    		public void onClick(View v) {
    		
    				uselmannMusic.start();
    		}
    		});
            los.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    			
    				losMusic.start();
    			
    			}
    		});
            gottlob.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    				gottlobMusic.start();
    			
    			}
    		});
     
            
        }  
            
        
    		@Override
    	protected void onPause(){
      
    		super.onPause();	
    	
    		lacheMusic.release();  
    		mariusMusic.release();
    		uhhMusic.release();
    		uselmannMusic.release();
    		losMusic.release();
    		gottlobMusic.release();
    			}	  
     
        }
    
    Hoffe auf Hilfe
    Mfg Jacob91195
     
  2. swordi, 30.11.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    wie schon zirka 10 000 000 mal hier gesagt,

    wenn du die logcat ausgaben hier rein kopieren würde, würde man den fehler leichter finden.
     
  3. DieGoldeneMitte, 30.11.2011 #3
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    swordi hat vollkommen recht, aber der Fehler ist offensichtlich genug für Schüsse aus der Hüfte:

    In onPause wird auf die Instanzvariablen zugegriffen, in den OnClickListenern auf die lokalen Variablen vom onCreate. Die Instanzvariablen sind also nicht initialisiert.

    Und: zu jedem onPause() gehört ein onResume().
     
    Zuletzt bearbeitet: 01.12.2011
  4. swordi, 30.11.2011 #4
    swordi

    swordi Gewerbliches Mitglied

    mag sein, aber ohne logcat mach ich mir nicht mal die mühe mir da 50-100 zeilen code durch zu lesen.

    der user möchte hilfe haben, dafür sollte es ein mindestmaß an entgegen kommen geben.

    und meistens wissen die user nicht mal dass es logcat gibt, denn sonst hätte er den fehler selbst gefunden und müsste keinen thread öffnen. nach deiner antwort würde er logcat noch immer nicht kennen...
     
  5. DieGoldeneMitte, 01.12.2011 #5
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Wenn deine Antwort nicht vorher gewesen wäre, hätte ich ihn schon auf logcat aufmerksam gemacht, keine Sorge :D
     
  6. swordi, 01.12.2011 #6
    swordi

    swordi Gewerbliches Mitglied

    dann is gut :D

    ich muss mir das glaub ich mal in die signatur schreiben.

    "hier gibt es keine hilfe ohne logcat" oder sowas :D
     
  7. DieGoldeneMitte, 01.12.2011 #7
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Gute Idee! (Habs gleich eingebaut) :D

    Aber leider sehen gerade die, die nicht ordentlich suchen, das erst, wenn man eine Antwort gibt.
     
  8. swordi, 01.12.2011 #8
    swordi

    swordi Gewerbliches Mitglied

    jap stimmt auch wieder

    dann bräuchte man ein plugin, welches mit einem knopfdruck noch ne antwort gibt ala "siehe signatur" :D
     
  9. Jacob91195, 01.12.2011 #9
    Jacob91195

    Jacob91195 Threadstarter Neuer Benutzer

    So hier das logcat:
    Code:
    12-01 18:13:42.772: E/AndroidRuntime(325): FATAL EXCEPTION: main
    12-01 18:13:42.772: E/AndroidRuntime(325): java.lang.RuntimeException: Unable to pause activity {app.best.of.hakan/app.best.of.hakan.StartingPoint}: java.lang.NullPointerException
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2354)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2311)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2291)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.ActivityThread.access$1700(ActivityThread.java:117)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:938)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.os.Looper.loop(Looper.java:123)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at java.lang.reflect.Method.invokeNative(Native Method)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at java.lang.reflect.Method.invoke(Method.java:507)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at dalvik.system.NativeStart.main(Native Method)
    12-01 18:13:42.772: E/AndroidRuntime(325): Caused by: java.lang.NullPointerException
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at app.best.of.hakan.StartingPoint.onPause(StartingPoint.java:94)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.Activity.performPause(Activity.java:3851)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1191)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2341)
    12-01 18:13:42.772: E/AndroidRuntime(325): 	... 12 more
    
    Da ich noch nicht so der Android Dev. Pro bin, wollte ich fragen wie ich das Problem lösen könnte.

    Mfg Jacob91195
     
  10. DieGoldeneMitte, 01.12.2011 #10
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Schön, dass du das Logcat gefunden hast.

    Jetzt lies dir erstmal die Antworten auf deine Frage durch. :D
     
  11. Jacob91195, 01.12.2011 #11
    Jacob91195

    Jacob91195 Threadstarter Neuer Benutzer

    Habe ich getan, ich hab auch versucht das Problem zu fixen.
    1.Ansatz: Ich habe die Mediaplayer create Teile außerhalb von onCreate geschrieben(oberhalb) und die Mediaplayer im oberen Abschnitt gelöscht => App stürtzt ab
    2.Ansatz: Ich habe versucht die Mediaplayer auf public zu setzten => bekomme nen Fehler

    Da ich leider sonst keine Lösung finde hab ich noch einmal gefragt ...

    MfG Jacob91195
     
  12. swordi, 01.12.2011 #12
    swordi

    swordi Gewerbliches Mitglied

    java grundkurs 1 :D
     
  13. Jacob91195, 01.12.2011 #13
    Jacob91195

    Jacob91195 Threadstarter Neuer Benutzer

    Ich sag ja, dass ich nicht der android/java dev. pro bin ;)
     
  14. DieGoldeneMitte, 01.12.2011 #14
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Das haben wir auch so gemerkt :D:D

    wieder kein Logcat. *facepalm* und tschüß
     
  15. Jacob91195, 03.12.2011 #15
    Jacob91195

    Jacob91195 Threadstarter Neuer Benutzer

    Mobb mich nicht -.- ;)


    Logcat:
    Code:
    12-03 11:23:26.475: E/AndroidRuntime(334): FATAL EXCEPTION: main
    12-03 11:23:26.475: E/AndroidRuntime(334): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{app.best.of.hakan/app.best.of.hakan.StartingPoint}: java.lang.NullPointerException
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.os.Looper.loop(Looper.java:123)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at java.lang.reflect.Method.invokeNative(Native Method)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at java.lang.reflect.Method.invoke(Method.java:507)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at dalvik.system.NativeStart.main(Native Method)
    12-03 11:23:26.475: E/AndroidRuntime(334): Caused by: java.lang.NullPointerException
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.media.MediaPlayer.create(MediaPlayer.java:662)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at app.best.of.hakan.StartingPoint.<init>(StartingPoint.java:16)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at java.lang.Class.newInstanceImpl(Native Method)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at java.lang.Class.newInstance(Class.java:1409)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
    12-03 11:23:26.475: E/AndroidRuntime(334): 	... 11 more
    
    Und Source Code:
    Code:
    package app.best.of.hakan;
    
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.TextView;
    import android.media.MediaPlayer;
    import android.view.View;
    
    
    
    public class StartingPoint extends Activity {
    	Button lache, marius, uhh, uselmann, los,  gottlob;
    	TextView display;
    	MediaPlayer lacheMusic = MediaPlayer.create(this, R.raw.lache);
        MediaPlayer mariusMusic = MediaPlayer.create(this, R.raw.marius);
        MediaPlayer uhhMusic = MediaPlayer.create(this, R.raw.uhh);
        MediaPlayer uselmannMusic = MediaPlayer.create(this, R.raw.uselmann);
        MediaPlayer losMusic = MediaPlayer.create(this, R.raw.los);
        MediaPlayer gottlobMusic = MediaPlayer.create(this, R.raw.gottlob);
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            lache=(Button)findViewById(R.id.lache);
            marius=(Button)findViewById(R.id.marius);
            uhh =(Button) findViewById(R.id.uhh);
            uselmann=(Button) findViewById(R.id.uselmann);
            los=(Button) findViewById(R.id.los);
            gottlob=(Button) findViewById(R.id.gottlob);
            
            
        	
    
            lache.setOnClickListener(new View.OnClickListener() {
    		
    		public void onClick(View v) {
    			
    			lacheMusic.start();
    			
    			
    		
    			}
    		
    		});   
            marius.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    			
    				mariusMusic.start();
    		
    			}
    		});
            uhh.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    			
    				uhhMusic.start();
    				
    			}
    		});
            uselmann.setOnClickListener(new View.OnClickListener() {		
    		public void onClick(View v) {
    		
    				uselmannMusic.start();
    		}
    		});
            los.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    			
    				losMusic.start();
    			
    			}
    		});
            gottlob.setOnClickListener(new View.OnClickListener() {
    			
    		public void onClick(View v) {
    				gottlobMusic.start();
    			
    			}
    		});
     
            
        }  
        @Override
    	protected void onPause(){
      
    		super.onPause();
    		
    	
    		lacheMusic.release();  
    		mariusMusic.release();
    		uhhMusic.release();
    		uselmannMusic.release();
    		losMusic.release();
    		gottlobMusic.release();
    			}	  
          
        	@Override
        protected void onResume(){
        	super.onResume();	
        		
        	}
    
       
    
        	
         	
        }
    
     
  16. swordi, 03.12.2011 #16
    swordi

    swordi Gewerbliches Mitglied

    endlich macht mal einer ein soundboard für den market :)
     
  17. Jacob91195, 04.12.2011 #17
    Jacob91195

    Jacob91195 Threadstarter Neuer Benutzer

    wenn sie nicht funktioniert, bringt sie auch nigs -.-
     
  18. swordi, 04.12.2011 #18
    swordi

    swordi Gewerbliches Mitglied

    LOL

    schade
     
  19. Jacob91195, 04.12.2011 #19
    Jacob91195

    Jacob91195 Threadstarter Neuer Benutzer

    genau deshalb hab ich hier um Hilfe gefragt.... zu DieGoldeneMitte schau!
     
  20. DieGoldeneMitte, 06.12.2011 #20
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Guck die die Zeile an, die die NPE auslöst:

    Code:
    Caused by: java.lang.NullPointerException
    ...
         at app.best.of.hakan.StartingPoint.<init>(StartingPoint.java:16) 
    Du benutzt "this" hier sehr früh. Zu früh. Wenn du auf Resourcen zugreifen willst, geht das nur, wenn die Activity "bereit" dazu ist. Und das ist sie noch nicht, wenn du (bzw Android) noch nichtmal den Konstruktor aufgerufen hast.

    Regel: Zugriff auf Resourcen erst in oder nach onCreate(). Und wenn es view Resourcen sind, die man erst per setContentView() mit der Acxtivity verbindet, dann erst nach eben diesem Aufruf.
     
Die Seite wird geladen...
Similar Threads - Problem mit onPause Forum Datum
[ERLEDIGT] Problem mit Async Task und auszuführender Aufgabe Android App Entwicklung 02.05.2017
[ERLEDIGT] Probleme mit Wear Modul Android App Entwicklung 01.05.2017
[OFFEN] Probleme mit SearchView in ArrayAdapter Android App Entwicklung 28.04.2017
Probleme mit NFC File Transfer Android App Entwicklung 21.01.2017
Problematik mit der Ausgabe von SQL Inhalten (ljava.lang) Android App Entwicklung 23.11.2016
Problem mit Thread bei Galaxy S5 und S6(Edge) Android App Entwicklung 23.09.2016
Probleme mit Android-Studio Android App Entwicklung 07.08.2016
Problem mit Android Studio Android App Entwicklung 21.07.2016
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung Mittwoch um 08:19 Uhr
[OFFEN] WebView Probleme Android App Entwicklung 19.05.2017