1

大家好,
我試圖在我的Android應用程序中播放youtube視頻,通過集成youtube sdk和從谷歌控制檯生成api鍵之後,當我嘗試運行我的應用程序運行應用程序時我在控制檯中收到此錯誤,任何人都可以幫助我解決此問題。無法在我的Android應用程序中播放YouTube視頻

11-19 19:41:53.264 1173-1173/? E/ActivityThread: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()? 
11-19 19:41:53.264 1173-1173/? E/ActivityThread: android.app.IntentReceiverLeaked: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()? 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:805) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:606) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1720) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.app.ContextImpl.registerReceiver(ContextImpl.java:1700) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.app.ContextImpl.registerReceiver(ContextImpl.java:1694) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:453) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at lwz.a(SourceFile:1238) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at lwv.a(SourceFile:671) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at aha.a(SourceFile:267) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at aha.b(SourceFile:287) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at aps.run(SourceFile:209) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.os.Handler.handleCallback(Handler.java:730) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.os.Handler.dispatchMessage(Handler.java:92) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.os.Looper.loop(Looper.java:176) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at android.app.ActivityThread.main(ActivityThread.java:5419) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at java.lang.reflect.Method.invokeNative(Native Method) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at java.lang.reflect.Method.invoke(Method.java:525) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 
11-19 19:41:53.264 1173-1173/? E/ActivityThread:  at dalvik.system.NativeStart.main(Native Method) 


Thanks in advance 
+0

你錯過了unregisterReceiver。所有這些,我們可以通過錯誤建議你 – curiousMind

回答

0

,因爲它顯示了你應該註銷接收機

@Override 
protected void onStop() 
{ 
    unregisterReceiver(yourReceiver); 
    super.onStop(); 
} 
0

雖然你的答案已經給出了。

Incase您的代碼仍然存在問題,您可以使用此完整代碼(包括java & xml)。

YoutubeActivity.java

public class YoutubeActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener { 

    private static final int RECOVERY_REQUEST = 1; 
    private YouTubePlayerView youTubeView; 
    private YouTubePlayer youTubePlayer; 
    public static final String YOUTUBE_API_KEY = "YOUR-API-KEY"; 
    private String youtubeid; 

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

     youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_player); 
     youTubeView.initialize(YOUTUBE_API_KEY, this); 
     Bundle extras = getIntent().getExtras(); 
     if (extras != null) { 
      youtubeid = extras.getString("youtubeid"); 
     } 

    } 

    @Override 
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) { 

     if (!wasRestored) { 
      YouTubePlayer.PlayerStyle style = YouTubePlayer.PlayerStyle.DEFAULT; 


      player.setPlayerStyle(style); 
      player.setFullscreen(true); 
      player.setShowFullscreenButton(false); 
      //player.cueVideo("fhWaJi1Hsfo"); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo 
      player.cueVideo(youtubeid); 
      //player.loadVideo(youtubeid); 

     } 
    } 

    @Override 
    public void onInitializationFailure(Provider provider, YouTubeInitializationResult errorReason) { 
     if (errorReason.isUserRecoverableError()) { 
      errorReason.getErrorDialog(this, RECOVERY_REQUEST).show(); 
     } else { 
      String error = String.format(getString(R.string.player_error), errorReason.toString()); 
      Toast.makeText(this, error, Toast.LENGTH_LONG).show(); 
     } 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == RECOVERY_REQUEST) { 
      // Retry initialization if user performed a recovery action 
      getYouTubePlayerProvider().initialize(YOUTUBE_API_KEY, this); 
     } 
    } 

    protected Provider getYouTubePlayerProvider() { 
     return youTubeView; 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

} 

activity_youtube.xml //您的佈局xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="#000000"> 

    <com.google.android.youtube.player.YouTubePlayerView 
     android:id="@+id/youtube_player" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 
+0

感謝您的幫助 –

+1

這是如何解決任何問題? –

+0

這是缺少註銷方法,所以它是如何完整或正確? –

相關問題