2015-12-11 3 views
0

Привет, я разрабатываю модуль Android Titanium для видеороликов на Chromecast. Я создаю меню программно. Я использую ниже код для этого:Ошибка: MenuItemCompat: элемент getActionProvider не реализует SupportMenuItem, возвращающий нуль

Код для меню

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; 
} 

Код для кнопки литом:

@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); 
} 

Он возвращается с учетом ошибки:

MenuItemCompat: getActionProvider: item does not implement SupportMenuItem; returning null

Может кто-нибудь помочь, почему эта ошибка поднимается?

ответ

0

Мы используем библиотеку AppCompat так это выглядит следующим образом ошибки говорит вам об этом будет принимать только пункты меню, которые также приходят из AppCompat:

android.support.v7.internal.view.menu.MenuBuilder 
+0

Не могли бы вы предложить какие изменения, необходимые для создания пунктов меню из AppCompat в данном сценарии. Спасибо –

+0

Замените «com.android.internal.view.menu.MenuBuilder» на «android.support.v7.internal.view.menu.MenuBuilder» и, возможно, потребуется импортировать этот класс, как описано в http://stackoverflow.com/ вопросы/24809580/NoClassDefFoundError-андроид-поддержка-v7-внутренний вид меню-menubuilder –

Смежные вопросы