繁体   English   中英

无法解析符号R.

[英]Cannot Resolve symbol R

我正在Android Studio上添加一个简短的Toast消息。(我正在制作Android Wear应用程序)

我不知道为什么这个代码在'符号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);
        }
    });
  }
 }

下面提到了一些程序:

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

2)手动输入import <package name>.R ,如果在导入R中丢失。

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

我希望其中任何一个都对您有所帮助,因为没有特别的方法来解决这个问题。

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

import <packagename>.R;

<packagename>替换为您自己的包名称。

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

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

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

1)你可能已经编写了import android.R; 在您的活动顶部。 您需要导入不同的R文件。 这意味着如果您的域名为“example”且项目名称为“project”,则导入应为: import com.example.project.R

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

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

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

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

最终为我做的诀窍是看Android Studio中的“事件日志”选项卡,我看到:

检测到框架:在项目Configure中检测到Android框架

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

在此之前 - 我尝试过的所有操作,例如:“干净”,“重建”和重新启动Android工作室 - 都无法正常工作。

似乎Gradle花费了太长的时间来执行您的计算机。 等待Gradle完成项目的构建。

我通过编辑build.gradle文件解决了这个问题。

compiledSdkVersion必须与您的appcompat依赖项保持一致。

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

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

所以,我希望这可以成为一个解决方案。

如果您的类缺少可能必须导入的R.Class链接, 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;

这对我有用。

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

这是我试过的:

  • 多次“清理”,“重建”和“无效缓存重启”

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

这没用,所以我卸载了Android Studio ,并重新安装了最新版本。

上面链接的接受答案有以下步骤(我在这里重现):

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

    转到您的用户文件夹(%USERPROFILE%),并删除.android,.AndroidStudio以及最终版本的任何类似目录,即.AndroidStudio1.2,以及.gradle和.m2(如果存在)。 然后转到%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”错误消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM