My application's using YouTube Data API v3 to play YouTube video. I have an Activity VideoPlayerActivity that playing Youtube video using YouTubeSupportFragment. While playing the first video, I also allow user to select another video to play, It'll start VideoPlayerActivity itself to play the second video. Everything goes well. But when I press Back to watch the first video again, and press Play button in YoutubePlayer controll, It crashes.
For simplicity, I use FragmentDemoActivity from YouTubeAndroidPlayerApi sample. In this activity, I have a button, when user clicks on it, this 'll start FragmentDemoActivity itself to play the second video. Everything works fine. But when pressing Back and click Play Button on YoutubePlayer controll. It crashes.
Here is the code.
public class FragmentDemoActivity extends YouTubeFailureRecoveryActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("FragmentDemoActivity", "onCreate");
setContentView(R.layout.fragments_demo);
YouTubePlayerFragment youTubePlayerFragment = (YouTubePlayerFragment) getFragmentManager()
.findFragmentById(R.id.youtube_fragment);
youTubePlayerFragment.initialize(DeveloperKey.DEVELOPER_KEY, this);
(findViewById(R.id.btn_click))
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(FragmentDemoActivity.this,
FragmentDemoActivity.class);
startActivity(intent);
}
});
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
YouTubePlayer player, boolean wasRestored) {
Log.e("FragmentDemoActivity", "onInitializationSuccess " + wasRestored);
if (!wasRestored) {
player.cueVideo("VvseoF9eASw");
}
}
@Override
protected YouTubePlayer.Provider getYouTubePlayerProvider() {
return (YouTubePlayerFragment) getFragmentManager().findFragmentById(
R.id.youtube_fragment);
}
}
And here is the logcat
09-29 22:18:31.181: E/AndroidRuntime(26398): FATAL EXCEPTION: main
09-29 22:18:31.181: E/AndroidRuntime(26398): java.lang.RuntimeException: PlaybackMonitor queried outside playback sequence
09-29 22:18:31.181: E/AndroidRuntime(26398): at ckj.j(PG:114)
09-29 22:18:31.181: E/AndroidRuntime(26398): at ckj.i(PG:101)
09-29 22:18:31.181: E/AndroidRuntime(26398): at cjt.N(PG:746)
09-29 22:18:31.181: E/AndroidRuntime(26398): at cjt.e(PG:673)
09-29 22:18:31.181: E/AndroidRuntime(26398): at ckl.i(PG:252)
09-29 22:18:31.181: E/AndroidRuntime(26398): at cps.a(PG:295)
09-29 22:18:31.181: E/AndroidRuntime(26398): at abq.run(PG:356)
09-29 22:18:31.181: E/AndroidRuntime(26398): at android.os.Handler.handleCallback(Handler.java:730)
09-29 22:18:31.181: E/AndroidRuntime(26398): at android.os.Handler.dispatchMessage(Handler.java:92)
09-29 22:18:31.181: E/AndroidRuntime(26398): at android.os.Looper.loop(Looper.java:150)
09-29 22:18:31.181: E/AndroidRuntime(26398): at android.app.ActivityThread.main(ActivityThread.java:5390)
09-29 22:18:31.181: E/AndroidRuntime(26398): at java.lang.reflect.Method.invokeNative(Native Method)
09-29 22:18:31.181: E/AndroidRuntime(26398): at java.lang.reflect.Method.invoke(Method.java:525)
09-29 22:18:31.181: E/AndroidRuntime(26398): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-29 22:18:31.181: E/AndroidRuntime(26398): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-29 22:18:31.181: E/AndroidRuntime(26398): at dalvik.system.NativeStart.main(Native Method)
09-29 22:18:31.181: E/AndroidRuntime(26398): Caused by: java.lang.Throwable: currentPlaybackSequenceMonitor became null here
09-29 22:18:31.181: E/AndroidRuntime(26398): at ckj.b(PG:61)
09-29 22:18:31.181: E/AndroidRuntime(26398): at cvc.j(PG:171)
09-29 22:18:31.181: E/AndroidRuntime(26398): at ckl.x(PG:178)
09-29 22:18:31.181: E/AndroidRuntime(26398): at ckl.a(PG:191)
09-29 22:18:31.181: E/AndroidRuntime(26398): at ckl.b(PG:733)
09-29 22:18:31.181: E/AndroidRuntime(26398): at pq.d(PG:510)
09-29 22:18:31.181: E/AndroidRuntime(26398): at zj.run(PG:408)
09-29 22:18:31.181: E/AndroidRuntime(26398): ... 9 more
09-29 22:18:31.251: E/IMGSRV(167): :0: PVRDRMOpen: TP3, ret = 42
09-29 22:18:31.311: E/IMGSRV(167): :0: PVRDRMOpen: TP3, ret = 43
09-29 22:18:32.221: E/IMGSRV(167): :0: PVRDRMOpen: TP3, ret = 34
09-29 22:18:32.441: E/IMGSRV(167): :0: PVRDRMOpen: TP3, ret = 43
09-29 22:18:33.141: E/IMGSRV(167): :0: PVRDRMOpen: TP3, ret = 76
09-29 22:18:33.211: E/AndroidRuntime(26229): FATAL EXCEPTION: main
09-29 22:18:33.211: E/AndroidRuntime(26229): java.lang.RuntimeException: Unable to pause activity {com.examples.youtubeapidemo/com.examples.youtubeapidemo.FragmentDemoActivity}: java.lang.IllegalStateException: android.os.DeadObjectException
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3220)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3175)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3153)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.ActivityThread.access$800(ActivityThread.java:148)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.os.Looper.loop(Looper.java:150)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.ActivityThread.main(ActivityThread.java:5390)
09-29 22:18:33.211: E/AndroidRuntime(26229): at java.lang.reflect.Method.invokeNative(Native Method)
09-29 22:18:33.211: E/AndroidRuntime(26229): at java.lang.reflect.Method.invoke(Method.java:525)
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-29 22:18:33.211: E/AndroidRuntime(26229): at dalvik.system.NativeStart.main(Native Method)
09-29 22:18:33.211: E/AndroidRuntime(26229): Caused by: java.lang.IllegalStateException: android.os.DeadObjectException
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.i(PG:522)
09-29 22:18:33.211: E/AndroidRuntime(26229): at sc.g(PG:174)
09-29 22:18:33.211: E/AndroidRuntime(26229): at fkz.onTransact(PG:360)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.os.Binder.transact(Binder.java:347)
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.google.android.youtube.player.internal.d$a$a.o(Unknown Source)
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.google.android.youtube.player.internal.s.d(Unknown Source)
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.google.android.youtube.player.YouTubePlayerView.c(Unknown Source)
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.google.android.youtube.player.YouTubePlayerFragment.onPause(Unknown Source)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.Fragment.performPause(Fragment.java:1854)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:930)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1039)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:1861)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.Activity.performPause(Activity.java:5403)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1233)
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3206)
09-29 22:18:33.211: E/AndroidRuntime(26229): ... 12 more
09-29 22:18:33.211: E/AndroidRuntime(26229): Caused by: android.os.DeadObjectException
09-29 22:18:33.211: E/AndroidRuntime(26229): at android.os.BinderProxy.transact(Native Method)
09-29 22:18:33.211: E/AndroidRuntime(26229): at aai.e(PG:629)
09-29 22:18:33.211: E/AndroidRuntime(26229): at com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.i(PG:519)
09-29 22:21:02.441: E/ActivityThread(26565): Activity com.examples.youtubeapidemo.FragmentDemoActivity has leaked ServiceConnection com.google.android.youtube.player.internal.r$e@21d28598 that was originally bound here
09-29 22:21:02.441: E/ActivityThread(26565): android.app.ServiceConnectionLeaked: Activity com.examples.youtubeapidemo.FragmentDemoActivity has leaked ServiceConnection com.google.android.youtube.player.internal.r$e@21d28598 that was originally bound here
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:974)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:868)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.ContextImpl.bindServiceAsUser(ContextImpl.java:1525)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.ContextImpl.bindService(ContextImpl.java:1513)
09-29 22:21:02.441: E/ActivityThread(26565): at android.content.ContextWrapper.bindService(ContextWrapper.java:497)
09-29 22:21:02.441: E/ActivityThread(26565): at com.google.android.youtube.player.internal.r.e(Unknown Source)
09-29 22:21:02.441: E/ActivityThread(26565): at com.google.android.youtube.player.YouTubePlayerView.a(Unknown Source)
09-29 22:21:02.441: E/ActivityThread(26565): at com.google.android.youtube.player.YouTubePlayerFragment.a(Unknown Source)
09-29 22:21:02.441: E/ActivityThread(26565): at com.google.android.youtube.player.YouTubePlayerFragment.initialize(Unknown Source)
09-29 22:21:02.441: E/ActivityThread(26565): at com.examples.youtubeapidemo.FragmentDemoActivity.onCreate(FragmentDemoActivity.java:49)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.Activity.performCreate(Activity.java:5303)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2296)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.ActivityThread.access$600(ActivityThread.java:148)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
09-29 22:21:02.441: E/ActivityThread(26565): at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 22:21:02.441: E/ActivityThread(26565): at android.os.Looper.loop(Looper.java:150)
09-29 22:21:02.441: E/ActivityThread(26565): at android.app.ActivityThread.main(ActivityThread.java:5390)
09-29 22:21:02.441: E/ActivityThread(26565): at java.lang.reflect.Method.invokeNative(Native Method)
09-29 22:21:02.441: E/ActivityThread(26565): at java.lang.reflect.Method.invoke(Method.java:525)
09-29 22:21:02.441: E/ActivityThread(26565): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-29 22:21:02.441: E/ActivityThread(26565): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-29 22:21:02.441: E/ActivityThread(26565): at dalvik.system.NativeStart.main(Native Method)
09-29 22:21:04.541: E/FragmentDemoActivity(26565): onCreate
09-29 22:21:04.821: E/FragmentDemoActivity(26565): onInitializationSuccess false
Any helps would be appreciated. Thanks in advance.