将 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