最近,我在使用android.support.v7.view.menu.MenuPopupHelper
时遇到了一个lint错误,这个错误现在被隐藏起来了,只能在它的库组中使用。
确切消息:
MenuPopupHelper constructor can only be called from within the same library group (groupId=com.android.support)
摘自MenuPopupHelper.java
类:
/**
* Presents a menu as a small, simple popup anchored to another view.
*
* @hide
*/
@RestrictTo(LIBRARY_GROUP)
public class MenuPopupHelper implements MenuHelper {
**问题:**是否知道发生这种情况的时间和原因?或者我应该寻找什么解决方法?
4条答案
按热度按时间9rbhqvlz1#
我刚刚发现here,这是该工具预发布版本中的一个bug。
如果您需要项目范围的解决方案,请将下面的代码段放入项目的
build.gradle
文件中或
使用下面的注解可以取消该特定方法或类的lint警告
ffvjumwh2#
我在Lint报告中出现错误:
错误:MenuPopupHelper.show只能从相同的库组前缀中调用(引用的groupId=androidx.appcompat具有来自groupId=MyProject的前缀androidx)[RestrictedApi] }.show()
如果您没有在
PopupMenu
中使用icons,则可以删除MenuPopupHelper
:之前:
之后:
或者添加
@SuppressLint("RestrictedApi")
注解。h22fl7wq3#
当我迁移到AndroidX时,我遇到了同样的问题,我替换了以下类:
android.support.v7.widget.PopupMenu
android.support.v7.view.menu.MenuPopupHelper
和新的
androidx.appcompat.widget.PopupMenu
androidx.appcompat.view.menu.MenuPopupHelper
我得到了同样的lint错误。
在查看参考文档后,我发现现在我可以只使用PopupMenu获得相同的行为,而不需要MenuPopupHelper,即使我的弹出菜单有图标。
jv4diomz4#
尝试改用
android.support.v7.widget.PopupMenu
: