找不到R.layout.activity_main

时间:2013-04-16 19:09:03

标签: android android-layout

我试图使用一些在线教程来解决多种布局问题。事情就是我的程序只要只有一个XML文件就可以正确构建和编译。当我添加多个XML文件时,我收到的错误是“{_ 1}}

行'无法解析activity_main或不是字段'

事实上,我之前在setContentView(R.layout.activity_main);中使用的每个项目现在都报告错误。我不知道出了什么问题。任何人都可以建议需要做什么吗?

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

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

29 个答案:

答案 0 :(得分:47)

我遇到了同样的问题,通过将R替换为com.example.appname.R来解决问题,显然将您的包引用放在那里。或者只需将此行添加到您的文件中:

import com.your.package.R

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

import android.support.compat.R

答案 1 :(得分:21)

我尝试了什么:

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

有效方法:

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

答案 2 :(得分:18)

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

答案 3 :(得分:10)

如果您的XML包含错误,您生成的文件可能无法构建,请尝试删除大部分内容并确保不重复ID和文件名,并且不使用大写和空格。如果它有效,你可以开始添加东西。

答案 4 :(得分:4)

我的错误通过导入行而消除

import com.example.myapplication.R;

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

答案 5 :(得分:4)

我犯这个错误的愚蠢错误是在我的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" >

答案 6 :(得分:3)

你导入了无效的R类, 导入yourpackage.R类 例如 com.example.R

你导入android.R类而不是yourpackages.R

的行为是什么

答案 7 :(得分:3)

Ivwd只是删除了行“import android.R;”并致电项目 - &gt;清洁...... 这对我的Win-7 / x64和Eclipse Kepler以及最后一次(02.2014)Android SDK来说已经足够了

答案 8 :(得分:2)

由于资源未正确加载而发生这种情况,并且在任何视图中都可能发生类似的问题,因此下面是一些可用于消除此错误的技术:-

  • 清理项目,构建->清理项目
  • 重建项目,构建->重建项目
  • 打开清单并检查是否缺少任何资源
  • 签入布局到特定ID(如果缺少)将其添加
  • 如果上述步骤不起作用,请使用以下命令重新启动android studio 使缓存无效。

注意:在上述步骤中,最后一步肯定可以解决此问题。

答案 9 :(得分:2)

在2019年,我遇到了同样的问题,我在互联网上搜索后发现了我与所有人共享的以下内容。

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

下面您可以找到可能的方法来解决无法在Android Studio中解析符号r的问题。

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

使用Gradle文件同步项目 更新Gradle插件后,您需要将项目与Gradle文件同步。 打开android studio,然后点击文件>使用Gradle文件同步项目选项

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

使缓存无效/重新启动 如果在移动某些文件和目录后遇到此错误,则可能是 R.layout 错误是由于Android Studio缓存与项目的当前布局不匹配引起的。如果您怀疑是这种情况,请从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>

当我撤消更改时,错误再次消失。因此,我在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>

希望它将对像我这样的编程新手有所帮助。

答案 10 :(得分:2)

goto tools-&gt; android-&gt;使用gradle文件同步项目 然后点击S

答案 11 :(得分:0)

当您更改项目名称时会发生

就我而言,我只是改变

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="xxxx.newName"

答案 12 :(得分:0)

清理项目并与gradle同步(无结果)后,我删除了所有import语句,并使用alt + Enter将它们重新带回。

答案 13 :(得分:0)

首先要做的->从Android Studio工具栏中选择Build> Clean Project,稍等片刻,然后通过选择Build> Rebuild Project来构建项目。

如果问题仍未解决,请执行以下操作->文件>使缓存无效/重新启动>从Android Studio的工具栏中无效并重新启动。

答案 14 :(得分:0)

在我的情况下,我不小心导入了我的库的R.类而不是我的应用模块的R。导入后,它就解决了。

答案 15 :(得分:0)

您的gradle或build需要知道资源的位置。

答案 16 :(得分:0)

发生过一次。不知道原因。

构建和GT; Clean Project为我删除了错误。

答案 17 :(得分:0)

在Android Studio中转到Tools - &gt; Android - &gt; Sync project with gradle filesFile - &gt;最新Android Studio版本中的Sync project with gradle files

答案 18 :(得分:0)

我遇到了类似的问题 从res中删除了一些图片后突然发生了。绘制。 我做了两件事。

  • 首先,我检查了drawable文件夹中的所有图像,如果它们都有预览的话。我的一个人受损了。
  • 其次,我关闭了所有打开的android工作室和模拟器。之后,每件事都运转良好。

答案 19 :(得分:0)

只需删除import.android.R;

然后R.layout。(XML LAYOUTNAME)将变为BLUE

我花了我一小时才发现这个错误

答案 20 :(得分:0)

当在values / strings.xml中添加了一个不合适的字符(/ -one slash)时,我得到了这个,当然,重命名有问题的资源很有帮助。 还有一件重要的事情 - 检查设备上的日期和时间。

答案 21 :(得分:0)

我使用maven作为构建工具,在我构建我的项目并在互联网上挖掘很多解决方案之后。通过添加到main_activity.xml

解决了我的问题
  

工具:上下文= “MainActivity”

答案 22 :(得分:0)

或者你可以写

import.R.layout //位于顶部

它肯定会起作用

答案 23 :(得分:0)

这解决了我的问题,

apt-get install ia32-libs

并重启:)

Android adb not found

答案 24 :(得分:0)

感谢@ RubberDuck的评论和@Emil的回答,我能够弄清楚问题是什么。我的XML文件中大多数元素的ID都完全相同。所以,我重命名了他们每个人。此外,我的XML文件包含大写字母。文件名应该在[a-z0-9_]中,所以我也重命名了我的文件,问题就解决了。

答案 25 :(得分:0)

我有一些建议:

  1. 确保除R相关错误外没有任何其他错误。在Eclipse,Android Tools - &gt;中右键单击项目文件夹。修复项目属性。

    2.检查以确保您输入了正确的R.有时可以导入默认的Android.R。

    3.检查布局XML文件中的错误。

答案 26 :(得分:0)

布局文件可能存在问题,更正布局文件并显示自动生成的类。

答案 27 :(得分:-1)

我删除了导入android.R并添加了 import android.support.v7.appcompat。*;

然而,这必须在导入后完成 通过右键单击项目并导入

来appcompat

答案 28 :(得分:-1)

您正在导入无效的R类,请检查导入。