Интеграция Chromecast в приложение, поддерживающее ActionBarSherlock

Я интегрирую 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: Может ли кто-нибудь дать инструкции по изменению библиотеки MediaRouter с помощью Eclipse.


person Huy Duong Tu    schedule 30.10.2013    source источник
comment
Вы можете опубликовать сообщение в том же блоге, на который вы подписаны.   -  person Ali Naddaf    schedule 30.10.2013


Ответы (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.

Надеюсь, поможет!

person Huy Duong Tu    schedule 31.10.2013
comment
Спасибо, вы должны также опубликовать это в блоге, я собирался написать вам по электронной почте, чтобы узнать, исправили ли вы это :) - person Marc-André Therrien; 14.04.2014
comment
Я уже исправил это. Если вам нужно, я пришлю вам свою модифицированную библиотеку support-v7-mediarouter. Но теперь я использую support-v7-appcombat, и я предпочитаю, чтобы вы использовали это. :) - person Huy Duong Tu; 15.04.2014
comment
Я конвертирую свой проект в appcombat. Вы нашли какое-нибудь решение для замены SherlockPreferenceActivity? - person Marc-André Therrien; 15.04.2014
comment
Мне еще не нужно было создавать раздел настроек, поэтому я не пробовал, но я думаю, что вы можете использовать эту библиотеку и использовать фрагмент вместо активности: github.com/kolavar/android-support-v4-preferencefragment - person Huy Duong Tu; 15.04.2014