【问题标题】:Cannot find R.layout.activity_main找不到 R.layout.activity_main
【发布时间】:2013-04-16 19:09:03
【问题描述】:

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

事实上,我之前在R.* 中使用的每个项目现在都报告错误。我不知道出了什么问题。谁能建议需要做什么?

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

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

【问题讨论】:

  • 你添加的xml文件的名称和路径是什么?
  • 您在添加这些文件后是否清理了您的项目?
  • 您是否尝试过清理项目并重建?
  • 如果您的 XML 包含错误,您生成的文件可能无法构建,请尝试擦除其大部分内容并确保 id 不重复。如果它有效,你可以开始添加东西
  • @RubberDuck - 该评论提出了一些不同的方法。我曾尝试清洁和重建,但没有帮助。另外,我导入了正确的R.java。但是,我的 XML 文件中的大多数元素与其他 XML 文件中的元素具有相同的 ID。所以,我尝试重命名它们。但是,这并没有导致R.java

标签: android android-layout


【解决方案1】:

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

import com.your.package.R

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

import android.support.compat.R

【讨论】:

  • Android 包中有一个 R.java 文件。不幸的是,使用 Ctrl + Shift + O (eclipse) 组织导入命令通常会抓取该文件,而不是您的 gen 文件夹中的文件。
  • 尝试清理您的项目。问题会消失的
  • 谢谢你救了我的一天!!
【解决方案2】:

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

import com.example.myapplication.R;

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      检查您是否不小心导入了 android.R。

      【讨论】:

        【解决方案5】:

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

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

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

        将项目 Gradle 更新到最新版本 始终使用最新版本的 Gradle 才能正常工作。

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

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

        使缓存无效/重新启动 如果您在移动一些文件和目录后遇到此错误,那么 R.layout 错误可能是由于 Android Studio 的缓存与您项目的当前布局不匹配造成的。如果您怀疑可能是这种情况,请从 Android Studio 的工具栏中选择 File > Invalidate Caches / Restart > Invalidate and Restart。 资源名称的问题也可能会阻止正确创建 R.java 文件,因此请检查您没有多个具有相同名称的资源,并且您的文件名中没有包含无效字符。 Android Studio 仅支持小写 a-z、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>
        

        “可能是因为我没有定义原色” 希望它对像我这样的编程新手有所帮助。

        【讨论】:

        • File > Invalidate Caches / Restart > Invalidate and Restart 对我有用。
        • 文件 > 使缓存无效/重新启动 > 使缓存无效并重新启动始终有效 (Y)
        • 这对我有用 Files > Sync Project with Gradle Files 选项,我的 Android Studio 版本是 3.6.1 PrintScreen
        【解决方案6】:

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

        <?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" >
        

        【讨论】:

          【解决方案7】:

          我尝试了什么:

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

          什么有效:

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

          【讨论】:

            【解决方案8】:

            更改项目名称时会发生这种情况

            就我而言,我只是改变

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

            【讨论】:

              【解决方案9】:

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

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

              【讨论】:

                【解决方案10】:

                这是由于资源没有正确加载而发生的,类似的问题也可能发生在任何视图中,因此以下是一些可用于消除此错误的技术:-

                • 清理您的项目,构建 -> 清理项目
                • 重建项目,构建 -> 重建项目
                • 打开清单并检查是否缺少任何资源
                • 如果缺少特定 id 的签入布局,请添加它
                • 如果上述步骤不起作用,请重新启动 android studio 使缓存失效。

                注意:在上述步骤中,最后一步肯定会解决这个问题。

                【讨论】:

                  【解决方案11】:

                  在 Android Studio 中转到 Tools -> Android -> Sync project with gradle filesFile -> Sync project with gradle files 在最新的 Android Studio 版本中。

                  【讨论】:

                  • 工具---->>>>>>android------->>>>>将项目与gradle文件同步
                  【解决方案12】:

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

                  【讨论】:

                    【解决方案13】:

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

                    但是这必须在导入后完成 appcompat 通过右键单击项目并导入

                    【讨论】:

                      【解决方案14】:

                      Ivwd 只是删除了“import android.R;”行并调用 Project->Clean... 这对我的 Win-7/x64 和 Eclipse Kepler 以及最后一个(02.2014)Android SDK 来说已经足够了

                      【讨论】:

                        【解决方案15】:

                        goto tools->android->将项目与 gradle 文件同步 然后点击S

                        【讨论】:

                          【解决方案16】:

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

                          Build> Clean Project 为我消除了错误。

                          【讨论】:

                            【解决方案17】:

                            如果您的 XML 包含错误,您生成的文件可能无法构建,请尝试擦除其中的大部分内容,并确保 id 和文件名不重复,并且不使用大写字母和空格。如果可行,您可以开始添加内容。

                            【讨论】:

                              【解决方案18】:

                              布局文件可能有问题,更正它会出现自动生成的类。

                              【讨论】:

                              • 是的,我也这么认为。但是,我无法指出错误是什么。我的意思是没有语法错误。我真的不知道出了什么问题。当我构建时,我只会收到消息Error in an XML file: aborting build.
                              【解决方案19】:

                              我有几点建议:

                              1. 确保除了与​​ R 相关的错误之外没有任何其他错误。在 Eclipse 中右键单击您的项目文件夹,Android 工具 -> 修复项目属性。

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

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

                              【讨论】:

                                【解决方案20】:

                                这解决了我的问题,

                                apt-get install ia32-libs
                                

                                然后重启:)

                                Android adb not found

                                【讨论】:

                                  【解决方案21】:

                                  或者你可以写

                                  import.R.layout // 在顶部

                                  它肯定会起作用

                                  【讨论】:

                                    【解决方案22】:

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

                                    tools:context=".MainActivity"

                                    【讨论】:

                                      【解决方案23】:

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

                                      【讨论】:

                                        【解决方案24】:

                                        只需删除 import.android.R;

                                        然后 R.layout.(XML LAYOUTNAME) 将变为蓝色

                                        我花了好几个小时才找到这个错误

                                        【讨论】:

                                          【解决方案25】:

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

                                          • 首先我检查了可绘制文件夹中的所有图像,如果它们都有预览。我的一个被损坏了。
                                          • 其次,我关闭了所有打开的android studio和模拟器​​。在那之后,一切都很好。

                                          【讨论】:

                                            【解决方案26】:

                                            您的 gradle 或 build 都需要知道资源在哪里。

                                            【讨论】:

                                              【解决方案27】:

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

                                              【讨论】:

                                                【解决方案28】:

                                                感谢@RubberDuck's comment@Emil's answer 我能够找出问题所在。我的 XML 文件中大多数元素的 ID 完全相同。所以,我给他们每一个都重新命名了。此外,我的 XML 文件包含大写字母。文件名应该在 [a-z0-9_] 中,所以我也重命名了我的文件,问题就解决了。

                                                【讨论】:

                                                  【解决方案29】:

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

                                                  如果问题未解决,则执行此操作 --> File > Invalidate Caches / Restart > Invalidate and Restart 从 Android Studio 的工具栏。

                                                  【讨论】:

                                                    猜你喜欢
                                                    • 2019-02-24
                                                    • 1970-01-01
                                                    • 1970-01-01
                                                    • 2018-10-02
                                                    • 1970-01-01
                                                    • 1970-01-01
                                                    • 1970-01-01
                                                    • 1970-01-01
                                                    • 2019-07-23
                                                    相关资源
                                                    最近更新 更多