Android L Youtube API - IllegalArgumentException: Service Intent must be explicit

Posted

技术标签:

【中文标题】Android L Youtube API - IllegalArgumentException: Service Intent must be explicit【英文标题】: 【发布时间】:2015-01-26 06:40:34 【问题描述】:

我知道在 L 上我只能绑定声明为显式的服务。在我的应用中,我目前正在使用 Youtube API,当在带有 L 的设备上运行时,我总是会收到此错误

java.lang.IllegalArgumentException: Service Intent must be explicit: Intent  act=com.google.android.youtube.api.service.START 

如何解决这个问题,让 Youtube API 也可以在 L 上运行?

【问题讨论】:

【参考方案1】:

有一个新版本的 Youtube API (1.2.1) 可以解决这个问题。可以从here下载。

如果您出于某种原因需要使用旧版本,请继续阅读:

Lollipop 中的 Youtube API v1.0.0 中存在一个错误。更多信息here 和here。

作为一种解决方法,您可以在清单中使用 android:targetSdkVersion="19" 同时 维护 API 21 作为构建目标(您仍然可以使用项目中的 Lollipop API)。

【讨论】:

这为我解决了这个问题 有一个新版本的 Youtube API (1.2.1) 可以解决这个问题。 不断在开发者密钥上崩溃。这有帮助。【参考方案2】:

*更新* 新的 android youtube SDK 已经发布!不再有隐含意图问题:

https://developers.google.com/youtube/android/player/downloads/

【讨论】:

【参考方案3】:

只需将旧的 Youtube Api 替换为 最新的 Youtube Api 版本

【讨论】:

【参考方案4】:

** 更新:2018.12.06 :: 下面的链接不再有效 ** 这适用于我的计费 API。

http://blog.android-develop.com/2014/10/android-l-api-21-javalangillegalargumen.html?m=1

【讨论】:

谢谢,但我无法使用 Youtube api 获得导致错误的意图。有没有办法修改 .jar 文件中的类? 我怀疑这会有点困难。如果可能的话,最好的办法是联系 .jar 的作者。祝你好运!

以上是关于Android L Youtube API - IllegalArgumentException: Service Intent must be explicit的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 YouTube Android Player API 播放某些 Youtube 视频

Youtube API v3 使用 webView 在 Android 上创建 Youtube 频道

Android YouTube API“初始化 YouTube 播放器时出错”

在 Android TV 中使用 Youtube API

使用 Android Youtube API 播放直播流

如何在 android 的 Youtube API V3 中按频道 ID 获取 Youtube 直播?