[英]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 ,并重新安装了最新版本。
上面链接的接受答案有以下步骤(我在这里重现):
删除Android Studio文件
转到您的用户文件夹(%USERPROFILE%),并删除.android,.AndroidStudio以及最终版本的任何类似目录,即.AndroidStudio1.2,以及.gradle和.m2(如果存在)。 然后转到%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”错误消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.