2016-12-19 1 views
1

Ich möchte ein Video auf Popup-Fenster aus dem Dienst zeigen, aber wenn ich den Dienst meiner Anwendung abstürzt zeigen diesen Fehler zu starten: -App zeigt Fehler beim Hinzufügen des Fensters nicht an - Token-Null ist nicht gültig; läuft deine Aktivität?

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 

Mein Code-of-Service-Video-Player ist hier:

VideoExtractor VideoExtractor = VideoExtractor.create(); 
    VideoExtractor.extract("FTD9aA4S5BY").enqueue(new Callback<VideoExtractionResult>() { 
     @Override 
     public void onResponse(Call<YouTubeExtractionResult> call, Response<VideoExtractionResult> response) { 
      Log.d(TAG, response.body().getVideoUri().toString()); 
      final VideoView mVideoview = (VideoView)mView.findViewById(R.id.youtubePlayer); 
      mVideoview.setMediaController(new MediaController(PlayerService.this)) 
      mVideoview.setVideoURI(response.body().getVideoUri()); 
      mVideoview.start(); 

      WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.WRAP_CONTENT, 
        WindowManager.LayoutParams.WRAP_CONTENT, 
        WindowManager.LayoutParams.TYPE_PHONE, 
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
        PixelFormat.TRANSLUCENT); 

      params.gravity = Gravity.TOP | Gravity.LEFT; 
      params.x = 0; 
      params.y = 100; 
      mWindowManager.addView(mView, params); 
     } 

     @Override 
     public void onFailure(Call<YouTubeExtractionResult> call, Throwable t) { 

     } 
    }); 

Ich rufe diesen Service von meiner Aktivität auf Lebenslauf-Methode.

Fehler-Stack für diesen Fehler ist hier:

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 
                     at android.view.ViewRootImpl.setView(ViewRootImpl.java:574) 
                     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310) 
                     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:86) 
                     at android.widget.MediaController.show(MediaController.java:379) 
                     at android.widget.MediaController.show(MediaController.java:329) 
                     at android.widget.VideoView$2.onPrepared(VideoView.java:454) 
                     at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:2815) 
                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                     at android.os.Looper.loop(Looper.java:148) 
                     at android.app.ActivityThread.main(ActivityThread.java:5539) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Warum ich diesen Fehler bin immer und wie diese zu lösen.

+0

die Antwort hier http://stackoverflow.com/questions/18662239/android-view-windowmanagerbadtokenexception-unable-to-add-window-on-buider-s/27737641#27737641 – Raghavendra

+0

Ihr Aktivitätscode –

+0

Mein Fehler hinterlassen Beim Hinzufügen des Mediencontrollers zur Videoansicht, wenn dieser Erodiervorgang nicht ausgeführt wird. – sasuke

Antwort

1

"WindowManager $ BadTokenException" Dieser Fehler tritt auf, wenn Sie ein Fensterebenenobjekt wie Dialog verwenden und bevor Sie Ihre Aktivität beenden, ist dieser Fehler aufgetreten. Sie sollten also Bedingung, dass Aktivität zerstört wird oder nicht, dann bitte Kontext verwenden. Versuchen

+0

Aber hier Media Controller verursacht das Problem. – sasuke

+0

Möglicherweise tritt es auf, weil Sie versuchen, die Höhe im Fenster festzulegen, während es das ** youtube ** -Objekt enthält. Bitte entfernen Sie diesen Code und versuchen Sie es erneut. –

Verwandte Themen