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

这是缺少注销方法,所以它是如何完整或正确? –

相关问题