我正在浏览一段代码(android.app.Activity.java
),我发现了一个方法调用,
public void invalidateOptionsMenu(){
if (mWindow.hasFeature(Window.FEATURE_OPTIONS_PANEL) &&
(mActionBar == null || !mActionBar.invalidateOptionsMenu())) {
mWindow.invalidatePanelMenu(Window.FEATURE_OPTIONS_PANEL);
}
}
现在,这不是一个专门与Android有关的问题,而是一个与Java和IDE有关的问题。我正在使用Android Studio,它以红色显示此方法调用,并显示消息"无法解析方法无效选项菜单()",但总体而言,解析和编译Activity.java时没有错误。
不仅这种方法,还有其他未解决的方法。我检查了mActionBar的类型,它是ActionBar。我去了ActionBar.invalidateOptionsMenu()
方法存在。
首先,为什么编译单元能够被解析然后编译,即使有未解析的方法调用。其次,即使该方法存在(并且不应显示未解析),IDE的这种行为应该如何解释为?
在IntelliJ IDEA中,有一个选项可以使缓存失效并重新启动:
文件>使缓存失效/重新启动>使缓存失效并重新启动
如果您使用的是 maven,则也应该重新导入依赖项:
打开"Maven项目"选项卡/窗口>重新导入所有Maven项目