无法解析符号 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;
用你自己的包名替换<packagename>
。
在您的代码中,R
没有被导入,因此您的 Android Studio
可能会在您的包中查找资源时感到困惑。
【讨论】:
你的意思是写代码'import下面提到了一些程序:
1) 试试Build
-> Clean/Rebuild
项目。
2) 手动输入import <package name>.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的主要内容,如果未能解决你的问题,请参考以下文章