我们使用Android Youtube API输入输出应用程序。最近我注意到,每当我尝试播放启用广告的视频时,应用程序就会崩溃。
我可以使用他们的示例应用程序来复制它。我尝试过SimplePlayerFragment和SimplePlayerView的例子。当我试图提示http://www.youtube.com/watch?v=QudbrUcVPxk视频(这只是一个例子,其他带有广告的视频也失败了)。
以下是LogCat输出:
10-26 19:10:49.074:E/AndroidRuntime(21637):致命异常:main10-26 19:10:49.074:E/AndroidRuntime(21637):java.lang.IollegalStateException:android.os.DeadObjectException 10-2619:10:49.074:E/AndroidRuntime(21637):在com.google.android.apps.youtube.api.jar.a.eo.surfaceDestroyed(源文件:236)10-26 19:10:49.074:E/AndroidRuntime(21637):在android.view.SurfaceView.updateWindow(SurfaceView.java:555)10-2619:10:49.074:E/AndroidRuntime(21637):在android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:232)10-26 19:10:49.074:E/AndroidRuntime(21637):在android.view.view.dispatchDetachedFromWindow(view.java:12156)10-2619:10:49.074:E/AndroidRuntime(21637):在android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2565)10-26 19:10:49.074:E/AndroidRuntime(21637):在android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2565)10-26 19:10:49.074:E/AndroidRuntime(21637):在android.view.ViewGroup.removeViewInternal(ViewGroup.java:3785)10-2619:10:49.074:E/AndroidRuntime(21637):在android.view.ViewGroup.removeViewInternal(ViewGroup.java:3758)10-2619:10:49.074:E/AndroidRuntime(21637):在android.view.ViewGroup.removeView(ViewGroup.java:3690)10-2619:10:49.074:E/AndroidRuntime(21637):在com.google.android.youtube.player.YouTubePlayerView$1.b(未知来源)10-26 19:10:49.074:E/AndroidRuntime(21637):在com.google.android.youtube.player.internal.r.h(未知来源)10-2619:10:49.074:E/AndroidRuntime(21637):在com.google.android.youtube.player.internal.r$e.onServiceDisconnected(未知来源)10-26 19:10:49.074:E/AndroidRuntime(21637):在android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1111)10-26 19:10:49.074:E/AndroidRuntime(21637):在android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1125)10-26 19:10:49.074:E/AndroidRuntime(21637):在android.os.Handler.handleCallback(Handler.java:730)10-2619:10:49.074:E/AndroidRuntime(21637):在android.os.Handler.dispatchMessage(Handler.java:92)10-2619:10:49.074:E/AndroidRuntime(21637):在android.os.Looper.loop(Looper.java:137)10-26 19:10:49.074:E/AndroidRuntime(21637):位于android.app.ActivityThread.main(ActivityThreads.java:5103)10-2619:10:49.074:E/AndroidRuntime(21637):在java.lang.reflect.Method.invokeNative(Native Method)10-2619:10:49.074:E/AndroidRuntime(21637):在java.lang.reflect.Method.ioke(Method.java:525)10-26 19:10:49.074:E/AndroidRuntime(21637):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)10-26 19:10:49.074:E/AndroidRuntime(21637):在com.android.internal.os.ZygoteInit.main(ZygoteNit.java:553)10-2619:10:49.074:E/AndroidRuntime(21637):在dalvik.system.NativeStart.main(本地方法)10-26 19:10:49.074:E/AndroidRuntime(21637):由以下原因引起:android.os.DeadObjectException10-26 19:10:49.074:E/AndroidRuntime(21637):在android.os.BinderProxy.transaction(本地方法)10-26 19:10:49.074:E/AndroidRuntime(21637):位于com.google.android.apps.youtube.api.b.a.be.a(源文件:221)10-2619:10:49.074:E/AndroidRuntime(21637):在com.google.android.apps.youtube.api.jar.a.eo.surfaceDestroyed(源文件:233)10-26 19:10:49.074:E/AndroidRuntime(21637):。。。再增加22个
如果有任何关于如何解决这个问题的想法,我将不胜感激。
UPD:
感谢@septagon,发现了另一条相关的LogCat消息:
10-27 16:58:51.763:D/YouTubeAndroidPlayerAPI(25196):apps.youtube.core.client.DefaultAdStatsClient.a:485 Ping__AWCl-JGAkAHIAQWpAn4krwpwE7A-4AIAqAMBMAQQgSwAU_QADdeVEnDazwBrSnaYs3R1HBqy45Cu537TEJ3YTBlvSni0sRdoz7KdLcSM8GN-htn40LlHEa78Q0Wc-Hrk04QcepGDWqXcyn7fC6U9J6CfOz_J6n509CB7hJfQX2xrj2YTLwO2_AeK-bj9k3KWULoKv_ZBYw5PfzGYPi2xuSOmQuFoYcr0atVp-oLKiFDMr NiGhAsjaCbg8jlG43cEZZZ-VSGq1f9Oz1b-XQKw4AQBiAXhiftBkgUGCAMQARgBkgUGCAQQBRgKkgUGCAqQARgBskgUGCAYQARgkgUECAYYA5AGAAAGHNgGAoAHuaXfLA&叹息=PjCzMkHYDKo&cid=5Gi9PCMcr3WKhFJWqILtjrdq&template_id=213">http://pubads.g.doubleclick.net/pagead/adview?ai=Cr6PgkatsUt7LE8GpmgXc3oHwBbGx9t8DsZHlu3Kx0vmLARABIOP7kwNQ4vr5ivj___AWCl-JGAkAHIAQWpAn4krwpwE7A-4AIAqAMBMAQQgSwAU_QADdeVEnDazwBrSnaYs3R1HBqy45Cu537TEJ3YTBlvSni0sRdoz7KdLcSM8GN-htn40LlHEa78Q0Wc-Hrk04QcepGDWqXcyn7fC6U9J6CfOz_J6n509CB7hJfQX2xrj2YTLwO2_AeK-bj9k3KWULoKQv_ZBYw5PfzGYPi2xuSOmQuFoYcr0atVp-oLKiFDMrNiGhAs jaCbg8jlG43cEZZZ-VSGq1f9Oz1b-XQKw4AQBiAXhiftBkgUGCAMQARgBkgUGCAQQBRgKkgUGCAqQARgBskgUGCAYQARgkgUECAYYA5AGAAAGHNgGAoAHuaXfLA&叹息=PjCzMkHYDKo&cid=5Gi9PCMcr3WKhFJWqILtjrdq&template_id=21310-27 16:58:51.763:D/AndroidRuntime(25196):关闭VM 10-2716:58:51.763:W/dalvikvm(25196):threadid=1:线程退出未捕获的异常(组=0x4158d700)10-27 16:58:51.773:E/AndroidRuntime(25196):致命异常:main 10-27 16:58:51.773:E/AndroidRuntime(25196):java.lang.NullPointerException 10-2716:58:51.773:E/AndroidRuntime(25196):在com.google.android.apps.youtube.core.player.AdStatsMacros.a(源文件:185)10-27 16:58:51.773:E/AndroidRuntime(25196):在com.google.android.apps.youtube.core.client.DefaultAdStatsClient.a(源文件:481)10-27 16:58:51.773:E/AndroidRuntime(25196):在com.google.android.apps.youtube.core.client.DefaultAdStatsClient.a(源文件:467)10-27 16:58:51.773:E/AndroidRuntime(25196):在com.google.android.apps.youtube.core.client.DefaultAdStatsClient.a(源文件:461)10-27 16:58:51.773:E/AndroidRuntime(25196):在com.google.android.apps.youtube.core.client.DefaultAdStatsClient.h(源文件:320)10-27 16:58:51.773:E/AndroidRuntime(25196):在com.google.android.apps.youtube.core.player.StatsTracker.g(源文件:409)10-27 16:58:51.773:E/AndroidRuntime(25196):在com.google.android.apps.youtube.core.player.an.handleMessage(源文件:1615)10-27 16:58:51.773:E/AndroidRuntime(25196):在android.os.Handler.dispatchMessage(Handler.java:95)10-2716:58:51.773:E/AndroidRuntime(25196):在android.os.Looper.loop(Looper.java:137)10-27 16:58:51.773:E/AndroidRuntime(25196):位于android.app.ActivityThread.main(ActivityThreads.java:5103)10-2716:58:51.773:E/AndroidRuntime(25196):在java.lang.reflect.Method.invokeNative(Native Method)10-2716:58:51.773:E/AndroidRuntime(25196):在java.lang.reflect.Method.ioke(Method.java:525)10-27 16:58:51.773:E/AndroidRuntime(25196):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)10-27 16:58:51.773:E/AndroidRuntime(25196):在com.android.internal.os.ZygoteInit.main(ZygoteNit.java:553)10-2716:58:51.773:E/AndroidRuntime(25196):在dalvik.system.NativeStart.main(本地方法)
公共问题跟踪器中存在错误。
你可以从那里跟踪进度。
Bug也在内部归档。
在使用最新版本的youtube时,我也遇到了同样的问题。我在我的Gnex上试过了,它没有最新版本的youtube,当然一切都很好。似乎上次更新搞得一团糟。
还有其他方法可以引起他们的注意吗?有没有办法删除最新的更新(只是现在,继续开发)?
对于另一个主题,您是否每秒尝试一次以上的getCurrentTimeMillis方法?当你每秒调用一次以上(比如每100毫秒调用一次)时,你会得到不同的时间戳吗?
谢谢,Roy
检查未过滤的logcat是否有来自com.google.android.apps.youtube.core.player.AdStatsMacros
的NullPointerException
。如果你能发现这样的错误,你可能和我和这个问题遇到了同样的问题。
Youtube Player API android在某些设备上播放时崩溃
我可以确认,这个错误是在过去72小时内出现的,每当广告试图播放时,就会导致一个完美工作的应用程序崩溃。错误似乎来自YouTube Player API jar的深层。目前似乎还没有得到证实,但看起来YouTube正在API后端尝试一些新的东西,并遇到了一些麻烦。