簡體   English   中英

Android 6.0+: java.lang.UnsupportedOperationException: 不支持,使用 MenuItemCompat.setOnActionExpandListener()

[英]Android 6.0+: java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener()

安卓工作室 3.2。

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'


android {
    compileSdkVersion 25
    defaultConfig {
        applicationId "com.myproject"
        minSdkVersion 18
        targetSdkVersion 25
        versionCode 423
        versionName "2.1.423"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

def AAVersion = '4.5.2'

依賴關系 { annotationProcessor "org.androidannotations:androidannotations:$AAVersion" annotationProcessor "org.androidannotations:ormlite:$AAVersion"

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:appcompat-v7:25.0.0'
implementation 'com.android.support:cardview-v7:25.0.0'
implementation 'com.android.support:customtabs:25.0.0'
implementation 'com.android.support:support-media-compat:25.0.0'
implementation 'com.android.support:support-v4:25.0.0'

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.7'
implementation 'com.google.android.gms:play-services-gcm:16.0.0'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.j256.ormlite:ormlite-android:5.1'
implementation 'commons-codec:commons-codec:1.11'
implementation 'commons-io:commons-io:2.6'
implementation 'org.apache.commons:commons-lang3:3.8.1'
implementation 'org.apache.httpcomponents:httpclient:4.3.6'
implementation "org.androidannotations:androidannotations-api:$AAVersion"
implementation "org.androidannotations:ormlite-api:$AAVersion"

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support.test:runner:1.0.2'

}

   MenuItemCompat.setOnActionExpandListener(searchMenuItem, new MenuItemCompat.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item) {
                isSearchWidgetExpanded = true;
                mToolbar.setBackgroundColor(ContextCompat.getColor(activity, R.color.search_view_background));
                // Expand (click to magnifying glass) and give focus to
                // SearchView automatically
                searchView.setFocusable(true);
                searchView.setIconified(false);
                searchView.requestFocusFromTouch();
                searchView.setIconifiedByDefault(false);

                menu.setGroupVisible(R.id.main_menu_group, false);
                return true;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem item) {
                if (BuildConfig.DEBUG)
                    Log.d(TAG, "onMenuItemActionCollapse(), press_home_searchView");
                isSearchWidgetExpanded = false;
                mToolbar.setBackgroundColor(activity.getResources().getColor(R.color.factura_background_color));
                searchView.setQuery("", false);
                menu.setGroupVisible(R.id.main_menu_group, true);
                AndroidUtil.hideKeyboard((Activity) activity);
                return true;
            }
        });

在 Android 6.0+ 上啟動時出現錯誤:

Process: com.myproject, PID: 24036
java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener()
    at android.support.v7.view.menu.MenuItemImpl.setOnActionExpandListener(MenuItemImpl.java:743)
    at android.support.v4.view.MenuItemCompat.setOnActionExpandListener(MenuItemCompat.java:464)
    at com.myproject.widget.SearchViewProviderWidget.<init>(SearchViewProviderWidget.java:147)
    at com.myproject.MainFragmentActivity.onCreateOptionsMenu(MainFragmentActivity.java:703)
    at android.app.Activity.onCreatePanelMenu(Activity.java:2852)
    at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:328)
    at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:92)
    at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:331)
    at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:92)
    at android.support.v7.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:454)
    at android.support.v7.app.ToolbarActionBar$1.run(ToolbarActionBar.java:61)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
   Force finishing activity com.myproject/.MainFragmentActivity_

錯誤在這一行:

MenuItemCompat.setOnActionExpandListener(searchMenuItem, new MenuItemCompat.OnActionExpandListener() {

文檔說直接使用該方法是這樣的:

searchMenuItem.setOnActionExpandListener(new MenuItemCompat.OnActionExpandListener() { /* ... */ })

編輯:

這可能是支持庫版本 25 中的一個錯誤,因此要修復它,請使用較新的版本,例如 26。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM