用于Android的YouTube播放器在广告播放时崩溃

时间:2013-10-26 08:38:13

标签: android youtube youtube-api android-youtube-api

我们在out应用程序中使用Android Youtube API。最近我注意到,每当我尝试使用已启用的广告播放视频时应用程序都会崩溃。

我可以使用sample applications重现它。我尝试过SimplePlayerFragment和SimplePlayerView示例。当我尝试提示http://www.youtube.com/watch?v=QudbrUcVPxk视频时,两者都崩溃了(这只是一个例子,其他带广告的视频也失败了。)

这是LogCat输出:

  

10-26 19:10:49.074:E / AndroidRuntime(21637):致命异常:主要   10-26 19:10:49.074:E / AndroidRuntime(21637):   java.lang.IllegalStateException:android.os.DeadObjectException 10-26   19:10:49.074:E / AndroidRuntime(21637):at   com.google.android.apps.youtube.api.jar.a.eo.surfaceDestroyed(的SourceFile:236)   10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.view.SurfaceView.updateWindow(SurfaceView.java:555)10-26   19:10:49.074:E / AndroidRuntime(21637):at   android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:232)   10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.view.View.dispatchDetachedFromWindow(View.java:12156)10-26   19:10:49.074:E / AndroidRuntime(21637):at   android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2565)   10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2565)   10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.view.ViewGroup.removeViewInternal(ViewGroup.java:3785)10-26   19:10:49.074:E / AndroidRuntime(21637):at   android.view.ViewGroup.removeViewInternal(ViewGroup.java:3758)10-26   19:10:49.074:E / AndroidRuntime(21637):at   android.view.ViewGroup.removeView(ViewGroup.java:3690)10-26   19:10:49.074:E / AndroidRuntime(21637):at   com.google.android.youtube.player.YouTubePlayerView $ 1.B(未知   来源)10-26 19:10:49.074:E / AndroidRuntime(21637):at   com.google.android.youtube.player.internal.r.h(未知来源)10-26   19:10:49.074:E / AndroidRuntime(21637):at   com.google.android.youtube.player.internal.r $ e.onServiceDisconnected(未知   来源)10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.app.LoadedApk $ ServiceDispatcher.doDeath(LoadedApk.java:1111)   10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.app.LoadedApk $ ServiceDispatcher $ RunConnection.run(LoadedApk.java:1125)   10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.os.Handler.handleCallback(Handler.java:730)10-26   19:10:49.074:E / AndroidRuntime(21637):at   android.os.Handler.dispatchMessage(Handler.java:92)10-26   19:10:49.074:E / AndroidRuntime(21637):at   android.os.Looper.loop(Looper.java:137)10-26 19:10:49.074:   E / AndroidRuntime(21637):at   android.app.ActivityThread.main(ActivityThread.java:5103)10-26   19:10:49.074:E / AndroidRuntime(21637):at   java.lang.reflect.Method.invokeNative(Native Method)10-26   19:10:49.074:E / AndroidRuntime(21637):at   java.lang.reflect.Method.invoke(Method.java:525)10-26 19:10:49.074:   E / AndroidRuntime(21637):at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)   10-26 19:10:49.074:E / AndroidRuntime(21637):at   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)10-26   19:10:49.074:E / AndroidRuntime(21637):at   dalvik.system.NativeStart.main(Native Method)10-26 19:10:49.074:   E / AndroidRuntime(21637):引起:android.os.DeadObjectException   10-26 19:10:49.074:E / AndroidRuntime(21637):at   android.os.BinderProxy.transact(Native Method)10-26 19:10:49.074:   E / AndroidRuntime(21637):at   com.google.android.apps.youtube.api.b.a.be.a(SourceFile:221)10-26   19:10:49.074:E / AndroidRuntime(21637):at   com.google.android.apps.youtube.api.jar.a.eo.surfaceDestroyed(的SourceFile: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 Pinging   __AWCl-JGAkAHIAQWpAn4krwpwE7A-4AIAqAMBmAQFqgSwAU_QADdeVEnDazwBrSnaYs3R1HBqy45Cu537TEJ3YTBlvSni0sRdoz7KdLcSM8GN-htn40LlHEa78Q0Wc-Hrk04QcefoGDWqXcyn7fC6U9J6CfOz_J6n509CB7hJfQX2xrj2YTLwO2_AeK-bj9k3KWULoKQv_ZBYw5PfzGYPi2xuSOmQuuFoYcr0atVp-oLKiFDMrNiGhAsjaCbg8jlG43cEZZZ-VSGq1f9Oz1b-XQKw4AQBiAXhiftBkgUGCAMQARgBkgUGCAQQBRgKkgUGCAQQARgBkgUGCAYQARgBkgUECAYYA5AGAaAGHNgGAoAHuaXfLA&安培;叹息= PjCzMkHYDKo&安培; CID = 5Gi9PCMcr3WKhFJWqILtjrdq&安培; template_id = 213"> HTTP://pubads.g.doubleclick.net/pagead/adview? AI = Cr6PgkatsUt7LE8GpmgXc3oHwBbGx9t8DsZHlu3Kx0vmLARABIOP7kwNQ4vr5ivj ___ AWCl-JGAkAHIAQWpAn4krwpwE7A-4AIAqAMBmAQFqgSwAU_QADdeVEnDazwBrSnaYs3R1HBqy45Cu537TEJ3YTBlvSni0sRdoz7KdLcSM8GN-htn40LlHEa78Q0Wc-Hrk04QcefoGDWqXcyn7fC6U9J6CfOz_J6n509CB7hJfQX2xrj2YTLwO2_AeK-bj9k3KWULoKQv_ZBYw5PfzGYPi2xuSOmQuuFoYcr0atVp-oLKiFDMrNiGhAsjaCbg8jlG43cEZZZ-VSGq1f9Oz1b-XQKw4AQBiAXhiftBkgUGCAMQARgBkgUGCAQQBRgKkgUGCAQQARgBkgUGCAYQARgBkgUECAYYA5AGAaAGHNgGAoAHuaXfLA&安培;叹息= PjCzMkHYDKo&安培; CID = 5Gi9PCMcr3WKhFJWqILtjrdq&安培; template_id = 213   10-27 16:58:51.763:D / AndroidRuntime(25196):关闭VM 10-27   16:58:51.763:W / dalvikvm(25196):threadid = 1:线程退出   未捕获的异常(组= 0x4158d700)10-27 16:58:51.773:   E / AndroidRuntime(25196):致命异常:主10-27 16:58:51.773:   E / AndroidRuntime(25196):java.lang.NullPointerException 10-27   16:58:51.773:E / AndroidRuntime(25196):at   com.google.android.apps.youtube.core.player.AdStatsMacros.a(的SourceFile:185)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   com.google.android.apps.youtube.core.client.DefaultAdStatsClient.a(的SourceFile:481)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   com.google.android.apps.youtube.core.client.DefaultAdStatsClient.a(的SourceFile:467)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   com.google.android.apps.youtube.core.client.DefaultAdStatsClient.a(的SourceFile:461)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   com.google.android.apps.youtube.core.client.DefaultAdStatsClient.h(的SourceFile:320)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   com.google.android.apps.youtube.core.player.StatsTracker.g(的SourceFile:409)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   com.google.android.apps.youtube.core.player.an.handleMessage(的SourceFile:1615)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   android.os.Handler.dispatchMessage(Handler.java:95)10-27   16:58:51.773:E / AndroidRuntime(25196):at   android.os.Looper.loop(Looper.java:137)10-27 16:58:51.773:   E / AndroidRuntime(25196):at   android.app.ActivityThread.main(ActivityThread.java:5103)10-27   16:58:51.773:E / AndroidRuntime(25196):at   java.lang.reflect.Method.invokeNative(Native Method)10-27   16:58:51.773:E / AndroidRuntime(25196):at   java.lang.reflect.Method.invoke(Method.java:525)10-27 16:58:51.773:   E / AndroidRuntime(25196):at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)   10-27 16:58:51.773:E / AndroidRuntime(25196):at   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)10-27   16:58:51.773:E / AndroidRuntime(25196):at   dalvik.system.NativeStart.main(原生方法)

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

使用我的Galaxy S4和最新版本的youtube我也遇到了同样的问题。 我在我的Gnex上尝试过,它没有最新版本的youtube,当然一切正常。似乎最后一次更新弄得一团糟。

有没有其他方法可以引起他们的注意?有没有办法删除最新的更新(只是暂时,继续开发)?

对于另一个主题,您是否每秒多次尝试过getCurrentTimeMillis方法?如果每秒拨打一次以上(比如每100毫秒一次),你会得到不同的时间戳或者相同的时间戳吗?

谢谢, 罗伊

答案 2 :(得分:0)

检查未过滤的logcat,查找来自NullPointerException的{​​{1}}。如果你能找到这样的错误,你可能遇到和我一样的问题,这个问题正在经历。

Youtube Player API android crashes on playback on some devices

我可以确认在过去的72小时内引入了此错误,并且在广告尝试播放时导致应用完美的应用崩溃。该错误似乎来自YouTube Player API的深层内部。似乎还没有确认,但看起来YouTube正在尝试新的API后端并遇到一些麻烦。