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

标签 android android-support-library

<分区>

今天 Android Studio(设置为稳定 channel 更新)让我下载 Android 支持存储库 46.0.0 的更新,所以我照做了。然后突然之间,我们的应用程序每次都开始崩溃,因为 MenuItemCompat.setOnActionExpandListener

是的,我应该查看发行说明,但我没有 - 这是事实。

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

有人遇到同样的问题还是只是我们的代码问题?有人可以提供如何解决此问题或如何强制使用早期版本的支持库的建议吗?比方说 25.1.0。问题似乎出现在 26.0.0-alpha1 中,它很可能包含在支持存储库版本 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'

非常感谢。

代码

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

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)

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

最佳答案

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

关于android - 即使我正在使用 MenuItemCompat.setOnActionExpandListener 我的应用程序也会崩溃,建议使用 MenuItemCompat.setOnActionExpandListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42961535/

相关文章:

android - 包含时区时,SimpleDateFormat 花费的时间太长

安卓 2.1 : Bluetooth Encryption

java - 解析 JSON 数据时处理空值

android - 带有加载器框架的 MapActivity

java - ScriptIntrinsicBlur 在 Galaxy S7 上的 API 24 上损坏了吗?

java - 如何使用 onTouch 事件更新绘制到 Canvas 上的 Android 位图的位置?

android - SupportLibrary 的目的

android - Travis CI Android - 找不到匹配的版本

Android 自动调整 TextViews 在减小字体大小之前拆分单词

android - 比较android中的两个drawable