gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:06 28 4
gpt4 key购买 nike

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

我已经详细阅读了以下链接中的回复,并没有解决问题: Android Studio says "cannot resolve symbol" but project compiles

我已经尝试了所有这些解决方案,包括“Invalidate and Restart”、Clean、Rebuild、检查 sdk 目录是否正确、检查所有依赖项是否存在、重新同步 gradle、将 compileSdkVersion 更改为 minSdkVersion 但它仍然拒绝遵循预期的行为。

Android studio 以红色突出显示一些方法和符号,当我在它们上面按 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;
}

}

最佳答案

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

关于java - Android Studio 说 "cannot resolve method"但方法存在并编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43110586/

28 4 0
文章推荐: ios - 当我们双击主页按钮并在后台发送应用程序时会调用哪个方法?
文章推荐: javascript - 如果值不存在,则将数组对象插入另一个数组对象
文章推荐: javascript - 将 sessionStorage 放入数组并打印数组中的所有值
文章推荐: android - DeepLinkDispatch - 不兼容的类型 : List cannot be converted to List