【问题标题】:YouTube initialization errorYouTube 初始化错误
【发布时间】:2016-06-30 21:26:00
【问题描述】:

我不知道我的错误是什么。 三天前,我的 youtubePlayer 在我的 Android 应用中运行良好。 现在我得到一个初始化错误。

我没有更改任何代码。

这是堆栈跟踪:

blackstone.tvsunnahboxmenu E/YouTubeAndroidPlayerAPI:创建 YouTubePlayerView 时出错 com.google.android.youtube.player.internal.w$a:com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer 中调用的构造函数引发的异常 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.ac.a(未知来源) 在 com.google.android.youtube.player.YouTubePlayerView.a(未知来源) 在 com.google.android.youtube.player.YouTubePlayerView$1.a(未知来源) 在 com.google.android.youtube.player.internal.r.g(未知来源) 在 com.google.android.youtube.player.internal.r$c.a(未知来源) 在 com.google.android.youtube.player.internal.r$b.a(未知来源) 在 com.google.android.youtube.player.internal.r$a.handleMessage(未知来源) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:6145) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Constructor.newInstance(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:288) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.ac.a(未知来源) 在 com.google.android.youtube.player.YouTubePlayerView.a(未知来源) 在 com.google.android.youtube.player.YouTubePlayerView$1.a(未知来源) 在 com.google.android.youtube.player.internal.r.g(未知来源) 在 com.google.android.youtube.player.internal.r$c.a(未知来源) 在 com.google.android.youtube.player.internal.r$b.a(未知来源) 在 com.google.android.youtube.player.internal.r$a.handleMessage(未知来源) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:6145) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 原因:java.lang.IllegalArgumentException:实现 IObjectWrapper 的具体类必须为被包装对象准确声明 one 的私有字段。最好这是 ObjectWrapper 类的一个实例。 在 wal.a(SourceFile:76) 在 com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.(SourceFile:145) 在 java.lang.reflect.Constructor.newInstance(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:288) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.w.a(未知来源) 在 com.google.android.youtube.player.internal.ac.a(未知来源) 在 com.google.android.youtube.player.YouTubePlayerView.a(未知来源) 在 com.google.android.youtube.player.YouTubePlayerView$1.a(未知来源) 在 com.google.android.youtube.player.internal.r.g(未知来源) 在 com.google.android.youtube.player.internal.r$c.a(未知来源) 在 com.google.android.youtube.player.internal.r$b.a(未知来源) 在 com.google.android.youtube.player.internal.r$a.handleMessage(未知来源) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:6145) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 06-30 17:07:48.867 32407-32407/software.blackstone.tvsunnahboxmenu E/SRIB_DCS:title=Toast 返回 true

blackstone.tvsunnahboxmenu E/YouTubeAndroidPlayerAPI: Error creating YouTubePlayerView                                                                                 com.google.android.youtube.player.internal.w$a: Exception thrown by invoked constructor in com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer
Caused by: java.lang.reflect.InvocationTargetException                                                                                              at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)                                                                                                  
Caused by: java.lang.IllegalArgumentException: The concrete class implementing IObjectWrapper must have exactly *one* declared private field for the wrapped object.  Preferably, this is an instance of the ObjectWrapper<T> class.                                                                                                  at wal.a(SourceFile:76)

【问题讨论】:

  • 如果以前有效的话,显然已经发生了一些变化:您的堆栈跟踪显示“The concrete class implementing IObjectWrapper must have exactly one declared private field for the wrapped object. Preferably, this is an instance of the ObjectWrapper class. at wal.a(SourceFile:76)”。该文件可能已更改。
  • 我没有为 YoutUbe 播放器调用更改此代码。
  • 我从我的 git hub 帐户中提取了代码,该帐户自 5 月 7 日以来一直没有被触及)从那时起我一直在本地工作)。我下载它并按原样运行它 - 没有更改或编辑....并且出现相同的结果。我在 4 个不同的 android 设备上运行它,结果相同 - YT 播放器无法初始化
  • 我也重建并清理了项目。

标签: android youtube-api


【解决方案1】:

我重建了项目,清理了历史记录(缓存)并从最后一个已知的好点重新编写了代码(里面是救生员!!)。

现在可以正常使用了!!

【讨论】:

    【解决方案2】:

    实现fileTree(dir: 'libs', include: ['*.jar'])

    和 YouTubeAndroidPlayerApi.jar 添加到 app/libs 文件夹并立即同步项目

    【讨论】:

    • @Dholakiya Madhuri:仅仅为了获得分数而投反对票并添加无法解释的评论是非常糟糕的品味和举止。这对任何人都没有好处,而且我们作为软件开发人员之间的礼节和礼貌都很差。当你做这样的事情时,弊大于利。作为一家公司的 CTO,我会确保不要雇用这样做的人,因为他们会成为积极团队的障碍,并且希望技能能够为团队做出积极贡献。是的 - CTO、CEO 和技术经理确实使用堆栈溢出来帮助和招聘!我们也看!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多