1

I am using Holoeverywhere and attempting to get the ActionView and ActionProvider in my onCreateOptionsMenu method, but gradle complains that both the getActionProvider and getActionView method symbols can not be found in MenuItemCompat. This sounds similar to Gradle and Android v7 compat issue but none of the solutions have worked. Any ideas?

...theysaidwhat\deck\DeckEditFragment.java:133: error: cannot find symbol
        actionProvider = (DeckFilterActionProvider) MenuItemCompat.getActionProvider(filterItem);
                                                                  ^
  symbol:   method getActionProvider(MenuItem)
  location: class MenuItemCompat

...\theysaidwhat\deck\DeckEditFragment.java:139: error: cannot find symbol
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
                                                           ^
  symbol:   method getActionView(MenuItem)
  location: class MenuItemCompat

Fragment

public class DeckEditFragment extends org.holoeverywhere.app.Fragment implements
    LoaderCallbacks<Cursor> {
...
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.activity_deck_manager_menu, menu);

    MenuItem filterItem = menu.findItem(R.id.deckFilter);

    actionProvider = (DeckFilterActionProvider) MenuItemCompat.getActionProvider(filterItem);
    actionProvider.adapter = adapter;

    MenuItem searchItem = menu.findItem(R.id.action_search);

    final ContentResolver resolver = getActivity().getContentResolver();
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

The menu

    <item
        android:id="@+id/deckFilter"
        android:showAsAction="always"
        android:title="filters"
        android:actionProviderClass="com.howbig.theysaidwhat.deck.DeckFilterActionProvider"/>
    <item
        android:id="@+id/action_search"
        android:actionViewClass="android.support.v7.widget.SearchView"
        android:icon="@drawable/ic_action_search"
        android:showAsAction="always"
        android:title="Search"/>
</menu>

gradle

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile project(':baseGameUtils')
    compile project(':holoEverywhereAddonPreferences')
    compile project(':holoEverywhereLibrary')
    compile project(':volley')
    compile 'com.google.android.gms:play-services:+'
    compile files('libs/android-sqlite-asset-helper.jar')
    compile files('libs/crittercism_v3_2_0_sdkonly.jar')
}
Community
  • 1
  • 1
Patrick Dattilio
  • 1,814
  • 3
  • 21
  • 35
  • My menu has the res-auto namespace but no longer uses it due to a change in holoeverywhere (https://github.com/Prototik/HoloEverywhere/issues/692) so I've also ruled that out. – Patrick Dattilio Dec 20 '13 at 02:51
  • I think you have to add the support lib to your dependencies. compile 'com.android.support:support-v4:19.0.0' – Gabriele Mariotti Dec 20 '13 at 07:47

0 Answers0