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

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

我不知道为什么这段代码在 'symbol R' 上有错误。 它说“无法解析符号 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);
        }
    });
  }
 }

【问题讨论】:

标签: java android android-studio symbols


【解决方案1】:

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

这是我尝试过的:

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

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

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

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

  1. 从安装程序中卸载。 (通过 Windows 的控制面板)
  2. 删除 Android Studio 文件

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

  3. 移除 SDK

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

  4. 删除 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 工作室 - 都不起作用。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2016-12-31
                • 1970-01-01
                • 2018-04-25
                • 2016-10-26
                • 2023-03-24
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多