Android 添加媒体路由器强制转换按钮时出错
我尝试使用实现我的应用程序的强制转换功能。 当它尝试将“媒体路由器播放”按钮添加到操作栏时,出现以下错误:Android 添加媒体路由器强制转换按钮时出错,android,google-cast,android-appcompat,android-actionbaractivity,Android,Google Cast,Android Appcompat,Android Actionbaractivity,我尝试使用实现我的应用程序的强制转换功能。 当它尝试将“媒体路由器播放”按钮添加到操作栏时,出现以下错误: 10-03 19:33:20.098 11781-11781/de.resper.e2cast W/MenuItemCompat﹕ getActionProvider: item does not implement SupportMenuItem; returning null 10-03 19:33:20.098 11781-11781/de.resper.e2cast W/dal
10-03 19:33:20.098 11781-11781/de.resper.e2cast W/MenuItemCompat﹕ getActionProvider: item does not implement SupportMenuItem; returning null
10-03 19:33:20.098 11781-11781/de.resper.e2cast W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41ebde18)
10-03 19:33:20.098 11781-11781/de.resper.e2cast E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: de.resper.e2cast, PID: 11781
java.lang.NullPointerException
at com.google.sample.castcompanionlibrary.cast.BaseCastManager.addMediaRouterButton(BaseCastManager.java:355)
at de.resper.e2cast.ChannelCastActivity.onCreateOptionsMenu(ChannelCastActivity.java:655)
CAHNNELCASTACITY中的位置为:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item); <--- ERROR
return true;
}
并扩展为:
public class ChannelCastActivity extends ActionBarActivity
BaseCastManager中有错误行:
public MenuItem addMediaRouterButton(Menu menu, int menuResourceId) {
MenuItem mediaRouteMenuItem = menu.findItem(menuResourceId);
MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider) MenuItemCompat.getActionProvider(mediaRouteMenuItem);
mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector); <--- ERROR
if (null != getMediaRouteDialogFactory()) {
mediaRouteActionProvider.setDialogFactory(getMediaRouteDialogFactory());
}
return mediaRouteMenuItem;
}
public菜单项addMediaRouterButton(菜单项,int菜单源ID){
MenuItem mediaRouteMenuItem=menu.findItem(menuResourceId);
MediaRouteActionProvider MediaRouteActionProvider=(MediaRouteActionProvider)MenuItemCompat.getActionProvider(mediaRouteMenuItem);
mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector);确保您的菜单项具有操作视图,而非-Chromecast需要支持v7版本。您可以发布您的R.menu.main
?Thx。选中所有菜单,但不选中菜单xml。您需要帮助,将在5分钟内接受答案。
public MenuItem addMediaRouterButton(Menu menu, int menuResourceId) {
MenuItem mediaRouteMenuItem = menu.findItem(menuResourceId);
MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider) MenuItemCompat.getActionProvider(mediaRouteMenuItem);
mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector); <--- ERROR
if (null != getMediaRouteDialogFactory()) {
mediaRouteActionProvider.setDialogFactory(getMediaRouteDialogFactory());
}
return mediaRouteMenuItem;
}
<activity
android:name=".ChannelCastActivity"
android:label="@string/title_activity_channel_cast"
android:theme="@style/Theme.AppCompat.Light"
android:parentActivityName=".MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.resper.e2cast.MainActivity" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</activity>