You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新IDE后构建APK遇MenuItem.OnActionExpandListener相关错误求助

问题描述

更新IDE后构建APK时出现以下错误,未改动其他代码:

  • 错误1:对象不是抽象类,且未实现android.view.MenuItem.OnActionExpandListener中定义的抽象方法public abstract fun onMenuItemActionExpand(p0: MenuItem): Boolean
  • 错误2:onMenuItemActionExpand 未重写任何方法
  • 错误3:onMenuItemActionCollapse 未重写任何方法

代码示例

menuItem.setOnActionExpandListener(object: MenuItem.OnActionExpandListener{

    override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
        parentLayout.visibility = View.GONE
        rv_listX.visibility = View.VISIBLE
        return true
    }

    override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
        parentLayout.visibility = View.VISIBLE
        emptyX.visibility = View.GONE
        rv_listX.visibility = View.GONE
        return true
    }

})
解决方案

问题根源是方法参数的可空性与接口定义不匹配:

  • MenuItem.OnActionExpandListener接口中的两个抽象方法,参数要求是非空的MenuItem,但代码里用了可空类型MenuItem?,编译器因此判定未正确实现接口方法,同时认为标注的override无效。

只需将方法参数的MenuItem?改为MenuItem即可解决所有错误,修正后的代码如下:

menuItem.setOnActionExpandListener(object: MenuItem.OnActionExpandListener{

    override fun onMenuItemActionExpand(item: MenuItem): Boolean {
        parentLayout.visibility = View.GONE
        rv_listX.visibility = View.VISIBLE
        return true
    }

    override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
        parentLayout.visibility = View.VISIBLE
        emptyX.visibility = View.GONE
        rv_listX.visibility = View.GONE
        return true
    }

})

若问题仍存在,可同步项目Gradle依赖,确保Kotlin版本与Android SDK版本适配,排除IDE更新引发的依赖版本不一致问题。

内容的提问来源于stack exchange,提问作者Vitalis Nyandoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:24:51