searchManager.getSearchableInfo (getComponentName ()) gibt null zurück

Ich bin gefolgtdieser Android-Leitfaden um einer Aktivität eine Suchleiste hinzuzufügen. Das Setup sieht folgendermaßen aus:

res / menu / activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/search"
    android:title="@string/menu_search"
    android:icon="@android:drawable/ic_menu_search"
    android:showAsAction="collapseActionView|ifRoom"
    android:actionViewClass="android.widget.SearchView" />
<item
    android:id="@+id/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/menu_settings"
    android:icon="@drawable/ic_menu_settings"/>

</menu>

res / xml / searchable.xml:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_name"
    android:hint="@string/search_hint" />

Aktivitätseintrag in Manifestdatei:

    <activity
        android:name="de.ivu.realtime.app.activity.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
        <meta-data
            android:name="android.app.default_searchable"
            android:value="de.ivu.realtime.app.activity.MainActivity" />
    </activity>

und der Code in MainActivity:

@SuppressLint("NewApi")
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    this.getMenuInflater().inflate(R.menu.activity_main, menu);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
    {
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
        SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());
        searchView.setSearchableInfo(searchableInfo);
    }

    return true;

Der Anruf nachsearchManager.getSearchableInfo(getComponentName()); kehrt immer zurücknull. Ich habe dies in anderen Fragen zum Stackoverflow gesehen, aber keine der dort vorgestellten Lösungen scheint auf meinen Fall zuzutreffen.

Das Menü XML hat eine<?xml version="1.0" encoding="utf-8"?> HeaderDas durchsuchbare XML enthält keine fest codierten ZeichenfolgenDas Umbenennen des Menüpunktes funktioniert nichtReinigen und Wiederherstellen reicht ebenfalls nicht aus

Jede Hilfe wird sehr geschätzt. Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage