我正在尝试调试Android Studio关于java SDK文件夹中文件的语法突出显示和定义的行为。该项目构建正常,但Android Studio本身在编辑器中的行为与此不一致。
我已经详细阅读了以下链接中的回复,并没有解决问题: Android Studio says "cannot resolve symbol" but project compiles
我已经尝试了所有这些解决方案,包括“无效并重新启动”,清理,重建,检查sdk目录是否正确,检查所有依赖项是否存在,重新同步gradle,将compileSdkVersion更改为minSdkVersion但它仍然拒绝遵循预期的行为。
Android工作室突出显示了一些红色的方法和符号,当我按下CTRL + B时,它们不会跟随它们(转到定义)。但是,当我只是打开文件时,方法和符号就可以了。
例如,对于sdk\sources\android-14\...
,在RingtonePreference类的...android\preference\RingtonePreference.java
中,有一行:
PreferenceFragment owningFragment = getPreferenceManager().getFragment();
方法getFragment()
以红色突出显示“无法解析方法”。
然后我点击getPreferenceManager()
上的CTRL + B,跳转到:
public PreferenceManager getPreferenceManager() {
return mPreferenceManager;
}
然后我点击PreferenceManager
上的CTRL + B,跳转到文件...android\preference\PreferenceManager.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;
}
}
答案 0 :(得分:2)
即使我在更改git分支后遇到同样的问题,我修复它的方法是更改 app / build.gradle (例如添加空白行),IDE要求同步**项目和同步后它得到修复。