无法解析符号 R

Posted

技术标签:

【中文标题】无法解析符号 R【英文标题】:Cannot Resolve symbol R 【发布时间】:2014-12-21 19:10:33 【问题描述】:

我正在使用 android Studio 添加一条简短的祝酒词。(我正在制作一个 Android Wear 应用程序)

我不知道为什么这段代码在 'symbol R' 上有错误。 它说“。”

    import android.app.Activity;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.support.wearable.view.WatchViewStub;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;

    public class MyActivity extends Activity 

        private TextView mTextView;

        @Override
        protected void onCreate(Bundle savedInstanceState) 
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my);

    //getnextpage
    Button getnextpage;
    getnextpage = (Button) findViewById(R.id.getnextpage);
    getnextpage.setOnClickListener(new OnclickListener() 
        public void onClick(View v) 
            Toast.makeText(getApplicationContext(), "Here is 2nd Page", Toast.LENGTH_LONG).show();
        
    );
    final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
    stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() 
        @Override
        public void onLayoutInflated(WatchViewStub stub) 
            mTextView = (TextView) stub.findViewById(R.id.text);
        
    );
  
 

【问题讨论】:

"cannot resolve symbol R" in Android Studio的可能重复 【参考方案1】:

万一上述任何答案都不起作用,以下解决了我的问题...

这是我尝试过的:

多个“清理”、“重建”和“无效缓存重启”

尝试手动添加[我的包].R,

这不起作用,所以我uninstalled Android Studio,并重新安装了最新版本。

对上述链接的接受答案具有以下步骤(我在此重现):

    从安装程序中卸载。 (通过 Windows 的控制面板)

    删除 Android Studio 文件

    转到您的用户文件夹 (%USERPROFILE%),然后删除 .android、.AndroidStudio 和任何具有版本的类似目录 最后,即 .AndroidStudio1.2,以及 .gradle 和 .m2 if 它们存在。然后转到 %APPDATA% 并删除 JetBrains 目录。 最后,转到 C:\Program Files 并删除 Android 目录。

    移除 SDK

    要删除 SDK 的任何剩余部分,请转到 %LOCALAPPDATA% 并删除 Android 目录。

    删除 Android Studio 项目

    Android Studio 在文件夹中创建项目 %USERPROFILE%\AndroidStudioProjects,您可能要删除。

我跳过了 4),然后卸载了一个单独的 Java 7 安装,这很好。

接下来我下载了最新的 Android Studio (3.3.2) 并安装了它。

也许有点激烈,但现在一切正常,“无法解析符号 R”错误消失了。

【讨论】:

【参考方案2】:

我通过编辑我的 build.gradle 文件。

compiledSdkVersion 必须与您的 appcompat 依赖项对齐。

我的 compileSdkVersion 是 22,所以我将我的 appcompat 依赖项编辑为

compile 'com.android.support:appcompat-v7:22.2.1'

所以,我希望这是一个解决方案。

【讨论】:

【参考方案3】:

如果在您的情况下导入 R 丢失,您必须手动导入 R

import <packagename>.R;

用你自己的包名替换&lt;packagename&gt;

在您的代码中,R 没有被导入,因此您的 Android Studio 可能会在您的包中查找资源时感到困惑。

【讨论】:

你的意思是写代码'import .R;'在顶部? 将 import .R 添加到代码的导入部分,在最上面不是必需的,请记住在清单中使用您自己的包名称。 嗯,我试过快捷键 Ctrl+Shift+O ,还是不行。 检查你的项目,看看你的资源是否有错误(尤其是xml文件),在这种情况下,你的文件将无法编译,你也无法解析R。如果您已经导入了 R,这是另一个检查。否则,可能需要更深入地检查代码。【参考方案4】:

下面提到了一些程序:

1) 试试Build -> Clean/Rebuild 项目。

2) 手动输入import &lt;package name&gt;.R,如果在导入中缺少 R。

3) 完成其对应XML文件的所有资源。

我希望其中任何一个对您有所帮助,因为没有特定的方法可以解决此问题。

【讨论】:

【参考方案5】:

Gradle 似乎在您的计算机上执行的时间过长。等待 Gradle 完成项目的构建。

【讨论】:

【参考方案6】:

如果您的班级缺少您可能必须导入的R.Class 链接,就会发生这种情况。 所以,在开始上课之前,你可以简单地开始

import Your_Package_name.R;

例如

import com.example.myproject.R;

Clean/Rebuild 项目不是解决方案时,您可以手动编写。

用例:

import javax.crypto.spec.SecretKeySpec;
import javax.net.ssl.HttpsURLConnection;
import com.example.jsonwebservice.R;

这对我有用。

【讨论】:

【参考方案7】:

我知道其他人已经说了大部分这些观点,但这应该作为一个总结,并希望提出一些新的解决方案!

如果只有字母“R”是红色的,则表示您的 R 文件有问题(位于 build\generated\source\r\debug\com\domain.projectname\R)。不要到处编辑你的 R 文件——因为每次清理和构建/重建项目时,R 文件都会重新生成(它会完全重置而不会失败)。有几种可能的解决方案:

1) 您可能在 Activity 的顶部写了 import android.R;。您需要导入不同的 R 文件。这意味着如果您的域是“示例”并且您的项目名称是“项目”,那么您的导入应该是:import com.example.project.R

2) R 是一个构建文件。这意味着它会在您清理时消失,并在您构建时重新生成,如前所述。确保在清理项目后构建或重建项目。

3) 可能您的 gradle 项目同步尚未完成。等到所有进程都运行完毕!

4) 您的 R 文件也可能损坏或丢失。如果以上都行不通,你可以得出这个结论。它有一个非常简单的修复,因为正如我之前解释的,当你重建一个新的 R 文件时会生成一个。所以只需导航到Build 并单击Clean project,然后在完成后单击Rebuild project。使用新的 R 文件,您的问题应该会消失。

P.S:如果没有提供所有相关代码,几乎不可能给出准确的答案

【讨论】:

【参考方案8】:

最后对我有用的是查看我看到的 Android Studio 中的“事件日志”选项卡:

Frameworks detected:在项目中检测到 Android 框架 配置

单击“配置”将 AndroidManifest.xml 设置为项目的配置文件(将其标识为“android”),然后所有“R”错误都消失了,我能够编译和运行。

在此之前 - 我尝试过的所有操作,例如:“清理”、“重建”和重新启动 Android 工作室 - 都不起作用。

【讨论】:

以上是关于无法解析符号 R的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio:无法解析符号 R [重复]

更改 Min Sdk 版本后“无法解析符号 'R'”? [复制]

无法解析符号 R

错误“无法解析符号 R”仅在一个文件中

无法解析 R 符号和方法

迁移到 Androidx 后无法解析符号 R