即使我正在使用MenuItemCompat.setOnActionExpandListener我的应用程序崩溃,建议使用MenuItemCompat.setOnActionExpandListener

T. *_*lli 5 android android-support-library

今天Android Studio(设置为Stable频道更新)让我下载Android支持存储库46.0.0的更新,所以我做到了.然后突然我们的应用程序因为MenuItemCompat.setOnActionExpandListener而每次都开始崩溃.

是的我还应该有支票发行说明,但我没有 - 这是事实.

现在我们的问题是什么 - 即使我们使用推荐的符号MenuItemCompat.setOnActionExpandListener,我们的应用程序崩溃了,我们建议使用MenuItemCompat.setOnActionExpandListener.那是胡说八道.

是否有人遇到同样的问题或者只是我们的代码问题?有人可以提供如何解决此问题或如何强制使用早期版本的支持库的建议吗?比方说25.1.0.问题似乎在26.0.0-alpha1中,很可能包含在Support Repository版本46中(请参阅该存储库的发行说明 - https://developer.android.com/topic/libraries/support-library/revisions.html# 26-0-0-alpha1)

顺便说一句.我们的build.gradle已经将支持库的修复版本声明为25.1.0.当使用gradle构建时,似乎新的支持库以某种方式强制在内部使用其他版本.

   compile 'com.android.support:appcompat-v7:25.1.0'
   compile 'com.android.support:design:25.1.0'
   compile 'com.android.support:support-v4:25.1.0'
Run Code Online (Sandbox Code Playgroud)

非常感谢你.

MenuItemCompat.setOnActionExpandListener(menu.findItem(R.id.action_search), new MenuItemCompat.OnActionExpandListener() {
                @Override
                public boolean onMenuItemActionExpand(MenuItem menuItem) {
                    ...
                }
Run Code Online (Sandbox Code Playgroud)

StackTrace的一部分

    E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dev, PID: 4835
java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener()
at android.support.v7.view.menu.MenuItemImpl.setOnActionExpandListener(MenuItemImpl.java:745)
at android.support.v4.view.MenuItemCompat.setOnActionExpandListener(MenuItemCompat.java:363)
at com.example.fragments.DevicesFragment.onCreateOptionsMenu(DevicesFragment.java:455)
at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:2338)
at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:3070)
at android.support.v4.app.FragmentController.dispatchCreateOptionsMenu(FragmentController.java:328)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:321)
at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:95)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:333)
at android.support.v7.app.AppCompatDelegateImplV9.preparePanel(AppCompatDelegateImplV9.java:1372)
at android.support.v7.app.AppCompatDelegateImplV9.doInvalidatePanelMenu(AppCompatDelegateImplV9.java:1652)
at android.support.v7.app.AppCompatDelegateImplV9$1.run(AppCompatDelegateImplV9.java:134)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
Run Code Online (Sandbox Code Playgroud)

更新:这似乎与这个问题有关,因为我也试过了,同样的事情发生在我身上.我不想更新到API 26 - Android支持Repo 46.0.0与Android Studio 2.3

ian*_*ake 3

这只是 26.0.0-alpha1 版本中的一个错误。通过更新文件切换回 25.3.0 build.gradle