Android Studio说"cannot resolve method"但方法存在并编译



我正在尝试调试Android Studio关于java SDK文件夹中文件的语法突出显示和定义以下的行为。该项目构建良好,但 Android Studio 本身在编辑器中的行为与此不一致。

我已经详细阅读了以下链接中的回复,但它不能解决问题: Android Studio说"无法解析符号",但项目编译

我已经尝试了所有这些解决方案,包括"无效和重新启动"、清理、重建、检查 sdk 目录是否正确、检查是否存在所有依赖项、重新同步 gradle、将 compileSdkVersion 更改为 minSdkVersion,但它仍然拒绝遵循预期的行为。

Android 工作室以红色突出显示一些方法和符号,当我在它们上按 CTRL+B 时不会跟随它们(转到定义)。但是,当我简单地打开文件时,方法和符号就在那里很好。

例如,对于sdksourcesandroid-14...,在铃声首选项类中,在...androidpreferenceRingtonePreference.java中,有一行:

PreferenceFragment owningFragment = getPreferenceManager().getFragment();

方法getFragment()突出显示为红色,表示"无法解析方法"。

然后我在getPreferenceManager()上按 CTRL+B,跳转到:

public PreferenceManager getPreferenceManager() {
return mPreferenceManager;
}

然后我在PreferenceManager上按 CTRL+B,它会跳转到文件...androidpreferencePreferenceManager.java。在该文件中,有以下内容:

PreferenceFragment getFragment() {
return mFragment;
}

我无法理解Android Studio还需要什么才能按预期运行。我在这里做错了什么?

作为参考,这是我的项目使用RingtoneManager的方式,但是这里没有"无法解析"Android Studio红色突出显示:

import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.preference.RingtonePreference;
import android.util.AttributeSet;
public class ExtRingtonePreference extends RingtonePreference {
private String mInitialRingtone;
public ExtRingtonePreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public ExtRingtonePreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ExtRingtonePreference(Context context) {
super(context);
}
@Override
protected Uri onRestoreRingtone() {
if(mInitialRingtone == null) {
return null;
} else {
return Uri.parse(mInitialRingtone);
}
}
public void setInitialRingtone(String initialRingtone) {
this.mInitialRingtone = initialRingtone;
}
}

即使在更改 git 分支后我也遇到了同样的问题,我修复它的方法是通过在app/build.gradle中进行更改(例如添加空行)和 IDE 要求同步**项目并在同步后修复它。

最新更新