com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.x 处的 android.os.DeadObjectException

标签 android android-youtube-api youtube-data-api

我遇到了这个问题,我没有任何情况报告为 20 次: 我有 youtube jar,因为版本号是:

list 版本:1.0

名称:com/google/android/youtube/player

规范标题:YouTube Android Player API

规范-版本:1.2.2

规范-供应商:谷歌公司

创建者:1.8.0-google-v7 (Google Inc.)

Fatal Exception: java.lang.IllegalStateException: android.os.DeadObjectException
       at com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.x(SourceFile:209)
       at hwe.w(SourceFile:305)
       at abpk.onTransact(SourceFile:228)
       at android.os.Binder.transact(Binder.java:361)
       at com.google.android.youtube.player.internal.d$a$a.r(Unknown Source)
       at com.google.android.youtube.player.internal.s.h(Unknown Source)
       at com.google.android.youtube.player.YouTubePlayerView.e(Unknown Source)
       at com.google.android.youtube.player.YouTubeBaseActivity.onSaveInstanceState(Unknown Source)
       at android.app.Activity.performSaveInstanceState(Activity.java:1238)
       at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1223)
       at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3175)
       at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3234)
       at android.app.ActivityThread.access$1100(ActivityThread.java:135)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1223)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5021)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by android.os.DeadObjectException
       at android.os.BinderProxy.transact(Binder.java)
       at com.google.android.apps.youtube.embeddedplayer.service.service.jar.IApiPlayerService$Stub$Proxy.k(SourceFile:289)
       at com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.x(SourceFile:207)
       at hwe.w(SourceFile:305)
       at abpk.onTransact(SourceFile:228)
       at android.os.Binder.transact(Binder.java:361)
       at com.google.android.youtube.player.internal.d$a$a.r(Unknown Source)
       at com.google.android.youtube.player.internal.s.h(Unknown Source)
       at com.google.android.youtube.player.YouTubePlayerView.e(Unknown Source)
       at com.google.android.youtube.player.YouTubeBaseActivity.onSaveInstanceState(Unknown Source)
       at android.app.Activity.performSaveInstanceState(Activity.java:1238)
       at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1223)
       at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3175)
       at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3234)
       at android.app.ActivityThread.access$1100(ActivityThread.java:135)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1223)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5021)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
       at dalvik.system.NativeStart.main(NativeStart.java)

最佳答案

这是 YouTube 播放器的内部问题,将在下一个版本中解决, 您可以在此处跟踪问题:

https://issuetracker.google.com/issues/35172585

如果 YoutubePlayer 已发布,则会发生此异常

根据Youtube SDK documentation关于错误:

public static final YouTubePlayer.ErrorReason UNEXPECTED_SERVICE_DISCONNECTION

Playback has been canceled and the player has been released due to an unexpected disconnection from the YouTube API service. Any further calls to this player instance will result in errors, a new player instance must be created to re-enable playback.

因此,为避免此异常,您已调用(如 youtubePlayer.loadVideo()cueVideo()getCurrentTimeMillis() 等.) 在 try catch block 中捕获 IllegalStateException 异常。

要创建 YoutubePlayer 的新实例,只需调用 catch block 中的 initialize() 方法即可。

例子:

 if (youtubePlayer != null) {
        try {
            youtubePlayer.loadVideo(videoId);
        } catch (IllegalStateException e) {
            initialize(API_KEY, this);
        }
    }

这对我来说效果很好

关于com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.x 处的 android.os.DeadObjectException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44215998/

相关文章:

youtube-data-api - youtube api C# 视频完整元数据

java - 如何使用 YouTube API V2 获取可断点上传的响应?

android - CC41-A 拒绝配对

java - youTube 数据 API V3 - 使用 PublishedAfter 时搜索返回错误 400

android - fragment 中的 YouTubePlayerView

html - YouTube 上传小部件是否使用 Flash 或 HTML5

android - Android SQLite 数据库中的 UNIQUE 约束

Android Air - 如何在 sleep 期间保持应用程序 Activity

android - 为什么我的本地视频流在通话期间会旋转?

android - 我们如何在移动应用程序中使用YouTube视频