Hi I'm developing a Titanium Android module for video casting on Chromecast. I am creating menu programmatically. I'm using below code for this:
Code for menu
protected Menu newMenuInstance(Context context) {
try
{
Class<?> menuBuilderClass = Class.forName("com.android.internal.view.menu.MenuBuilder");
Constructor<?> constructor = menuBuilderClass.getDeclaredConstructor(Context.class);
return (Menu) constructor.newInstance(context);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Code for cast button:
@Kroll.method
public void castButtonLoader(){
Menu menu= newMenuInstance(TiApplication.getInstance());
int menuId= TiApplication.getAppRootOrCurrentActivity().getResources().getIdentifier("main", "menu",TiApplication.getInstance().getPackageName());
new MenuInflater(getActivity().getApplicationContext()).inflate(menuId, menu);
MenuItem mediaRouteMenuItem;
mediaRouteMenuItem = menu.findItem(menuId);
MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider) MenuItemCompat.getActionProvider(mediaRouteMenuItem);
// Set the MediaRouteActionProvider selector for device discovery.
mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector);
}
It is returning given error:
MenuItemCompat: getActionProvider: item does not implement SupportMenuItem; returning null
Can anyone please help why this error is raising?