将 Chromecast 集成到支持 ActionBarSherlock 的应用程序中

Posted

技术标签:

【中文标题】将 Chromecast 集成到支持 ActionBarSherlock 的应用程序中【英文标题】:Integrating Chromecast into application supporting ActionBarSherlock 【发布时间】:2013-10-30 09:32:37 【问题描述】:

我正在将 chromecast 集成到我现有的支持 ActionBarSherlock 的应用程序中。 我点击了这个链接http://www.droidorbit.com/2013/10/mediarouter-and-actionbarsherlock.html。 但是我在编译时遇到了错误:

MediaRouterJellybean cannot be resolved to a type.  
MediaRouterJellybeanMr1 cannot be resolved to a type  
MediaRouterJellybeanMr2 cannot be resolved to a type  in SystemMediaRouteProvider.java file.  
R.attr.isLightTheme cannot be resolved or is not a field in MediaRouterThemeHelper.java file.

我目前对这些代码进行无错误的编译,然后与 Cast 示例项目集成。在项目中,我在 ActionBar 中使用android.support.v7.app.MediaRouteActionProvider 显示演员图标,而不是使用MediaRouteButton。但是我在onCreateOptionMenu() 中遇到了运行时错误:

java.lang.ClassCastException: android.support.v7.app.MediaRouteActionProvider cannot be cast to com.actionbarsherlock.view.ActionProvider

我不知道如何解决它。谁能帮帮我? 提前致谢。 P/S:谁能给出使用 Eclipse 修改 MediaRouter 库的说明。

【问题讨论】:

您可能想在您关注的同一博客上发帖 【参考方案1】:

我解决了。

只需在isLightTheme()函数中注释代码并返回false即可。 将 3 个文件 MediaRouterJellybean.java, MediaRouterJellybeanMr1.java, MediaRouterJellybeanMr2.java 复制到数据包 android.support.v7.media。 那个时候还是报错

MediaRouterJellybeanMr2 cannot be resolved to a type  in SystemMediaRouteProvider.  

AndroidManifest.xml中,设置目标版本=18,右键项目,选择Android Tool -> Clear Lint Marker。 P/S:我使用的是 Eclipse,而不是 Android Studio。

希望对你有帮助!

【讨论】:

谢谢你,你也应该把它发布到博客上,我会通过电子邮件告诉你是否修复了它:) 我已经修好了。如果您需要,我会将修改后的 support-v7-mediarouter 库发送给您。但现在我使用 support-v7-appcombat,我更喜欢你使用它。 :) 我正在将我的项目转换为 appcombat。您是否找到任何解决方案来替换 SherlockPreferenceActivity? 我还不需要创建 Preference 部分所以我没有尝试过,但我认为你可以使用这个库,并使用片段而不是活动:github.com/kolavar/android-support-v4-preferencefragment

以上是关于将 Chromecast 集成到支持 ActionBarSherlock 的应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

Chromecast 是不是支持从 Android 设备进行屏幕投射?

我可以将 iOS 应用程序视图流式传输到 Chromecast

支持原生 iOS 应用中的 chromecast

适用于 Android 应用 (AS3) 的 Chromecast 和 Air

如何将屏幕内容流式传输到 Chromecast

chromecast设备支持哪些视频格式(mp4,flv,m3u8,flv,avi)?