找不到R.layout.activity_main

The*_*ner 29 android android-layout

我试图使用一些在线教程来解决多种布局问题.事情就是我的程序只要只有一个XML文件就可以正确构建和编译.当我添加多个XML文件时,我收到的错误是"无法解析activity_main或者不是该行的字段"setContentView(R.layout.activity_main);

实际上,我之前使用的每个项目R.*现在报告错误.我不知道出了什么问题.任何人都可以建议需要做什么?

编辑1:我尝试清理和重建项目,但这没有帮助.另外,我正在导入正确的R.java文件,如mypackage .R.java

根据@ RubberDuck的评论,我一旦删除文件,就会在构建项目后生成R.java文件.但是,当我创建新的XML文件并在其中添加元素时,构建项目时,R.java会被删除.

ros*_*per 57

我有同样的问题,通过更换固定Rcom.example.appname.R明显的摆在那里,而不是你的包的参考.或者只是将此行添加到您的文件中:

import com.your.package.R
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,尝试从代码中删除此行(如果存在):

import android.support.compat.R
Run Code Online (Sandbox Code Playgroud)

  • Android包中有一个R.java文件.不幸的是,使用Ctrl + Shift + O(eclipse)的组织导入命令通常会获取该文件,而不是gen文件夹中的文件. (4认同)
  • 辉煌。谢谢! (2认同)
  • 尝试清理您的项目。问题会消失 (2认同)
  • 工作删除`导入android.support.compat.R` (2认同)

Abd*_*hid 23

在 2019 年,我遇到了同样的问题,我在互联网上搜索并找到了以下内容,与大家分享。

在 android studio 中,字母 R 代表资源,发生此错误是因为构建过程无法将资源与您的项目同步。换句话说,此错误是由于 Android Studio 无法正确生成您的 R.java 文件而导致的。当您将代码转移到另一个系统或第一次构建 android 项目时,会发生此问题。因此,当您创建新活动或新类时,您将看到一条错误消息,例如“无法解析符号 r”,并带有红色下划线。

您可以在下面找到解决 android studio 中无法解析符号 r 的可能方法。

将项目 Gradle 更新为最新版本 始终使用最新版本的 Gradle 以正常运行 android studio。

将项目与 Gradle 文件同步更新 Gradle 插件后,您需要将项目与 Gradle 文件同步。打开 android studio 并单击Files > Sync Project with Gradle Files option

清理并重建项目 最有效的解决方案是最简单的:清理并重建项目。从 Android Studio 工具栏中选择Build > Clean Project,稍等片刻,然后通过选择Build > Rebuild Project构建您的项目

Invalidate Caches / Restart 如果您在移动一些文件和目录后遇到此错误,则R.layout错误可能是由 Android Studio 的缓存与您项目的当前布局之间的不匹配引起的。如果您怀疑可能是这种情况,请选择File > Invalidate Caches / Restart > Invalidate and Restart从 Android Studio 的工具栏中。资源名称的问题也会阻止正确创建 R.java 文件,因此请检查您是否有多个同名资源,并且您的文件名中没有包含无效字符。Android Studio 仅支持小写 az、0-9、句号和下划线,单个无效字符可能会导致整个项目中出现 R.layout 错误,即使您实际上并未在项目中的任何地方使用此资源!

我的问题及其解决方案:就我而言,我应用了上述所有方法但无法解决问题。因此,我开始了一个新项目,并一一粘贴了我的代码,并通过运行该应用程序验证了我的代码。最后,当我第一次删除colors.xml 中的代码并在colors.xml 文件中复制并粘贴下面的代码时,我得到了错误。

<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
Run Code Online (Sandbox Code Playgroud)

当我撤消更改时,错误再次消失。因此,我在colors.xml 中的代码不是上面的代码,而代码已经在colors.xml 中,即

<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
Run Code Online (Sandbox Code Playgroud)

“也许是因为我没有定义颜色原色”希望它可以帮助像我这样的编程新手。

  • **文件&gt;无效缓存/重新启动&gt;无效并重新启动**对我有用。 (7认同)
  • 文件 &gt; 无效缓存/重新启动 &gt; 无效并重新启动始终有效 (Y) (3认同)

Art*_*ski 21

检查你是否意外导入了android.R.


Waj*_*Ali 21

我试过的:

  1. 检查每个 XML 文件中是否存在一些著名的已知错误。
  2. 多次清理项目。
  3. 将 Gradle 与项目文件同步。

什么工作:

1. 使缓存无效并重新启动。


Rub*_*uck 12

如果您的XML的包含错误的生成文件可能不建立尝试删除大部分内容,并确保id和文件名重复,也没有资金和空间使用.如果它有效,你可以开始添加东西.


Him*_*ami 6

您正在导入无效的 R 类,例如 com.example.R 导入 yourpackage.R 类

你导入 android.R 类而不是 yourpackages.R 究竟发生了什么


arp*_*714 6

通过导入该行删除了我的错误

import com.example.myapplication.R;
Run Code Online (Sandbox Code Playgroud)

您的导入行可能会有所不同,具体取决于您的项目名称,其中我的项目名称是myapplication


Ted*_*Ted 5

我造成此错误的愚蠢错误是错误的 AndroidManifest.xml文件中的软件包字符串。我在教程中保留了字符串设置,但是在设置项目时使用了自己的字符串。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="COM.YOU.YOURAPPNAME"
android:versionCode="1"
android:versionName="1.0" >
Run Code Online (Sandbox Code Playgroud)


kam*_*uma 5

如果有以下导入,请删除它

import android.R

这个问题基本上发生在当你传递一个java代码然后你让android studio将它转换为kotlin时导入会自动发生