我们在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(原生方法)
答案 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后端并遇到一些麻烦。