【问题标题】:R.Java not generatedR.Java 未生成
【发布时间】:2011-11-29 21:56:43
【问题描述】:

我已经从google codes 下载了代码,但是当我在我的 Eclipse IDE 中导入该项目时 它不会生成 R.Java 文件。我搜索了很多博客和论坛,并尝试了很多东西,例如清理、重建、从现有源创建项目等,但仍然面临问题。有人提到它有时是由 SVN 客户端软件引起的,但他们都没有提到任何解决方案。如果您自己下载并找到确切的问题,我将非常感谢你们。

【问题讨论】:

  • 你试过删除“gen”文件夹吗?
  • 根本没有“gen”文件夹
  • 对此有何更新?问题解决了吗?
  • 即使您没有 R.java 文件并且构建失败,也要运行该项目。将创建一个新的 R.java

标签: android eclipse tortoisesvn r.java-file svn-client


【解决方案1】:

一般来说,让它工作:

  1. 将项目导入eclipse(文件->导入->常规->将现有项目导入工作区)
  2. 在 Eclipse 中,手动创建 gen 文件夹并将其添加为源文件夹(右键单击您的项目,构建路径 -> 配置构建路径 -> 添加文件夹)
  3. 清理你的项目,你想生成 R.java

但它没有,为什么?

因为 res 中的 xml 文件存在一些编译错误(或错误?),所以没有生成 R(我在我的 Mac 上测试过):
在 res/values/styles.xml: 注释掉以下内容:

<style name="iWindowTitleBackground" parent="android:WindowTitleBackground">    
  <item name="android:background">@drawable/title_bar</item>        
</style>

在 res/values/themes.xml 中:注释掉以下内容:

<item name="android:windowTitleBackgroundStyle">@style/iWindowTitleBackground</item>

然后做一个 Project -> Clean,你应该会生成 R.java。

有错误报告 parent="android:WindowTitleBackground" 在某些操作系统中无法解析,查看here了解更多详情。

【讨论】:

  • 我忘记了,如果有错误,它不会生成。当我处理它时,整个 R.java 事情是一个痛苦和一个愚蠢的问题。它并不是开发人员的错,只是 sdk 中的一个错误 :(
  • 谢谢。我没有完全相同的 xml 内容,但清理它们仍然有效。
【解决方案2】:

每当您生成的 R 类没有生成时,就表明由于 XML 资源的一些解析问题,生成它时存在问题。检查 IDE 中的错误控制台,找出具体错误。

常见问题有:

  • strings.xml 中的未转义字符,例如 you're 而不是 you\'re
  • 布局资源中缺少layout_widthlayout_height 标签
  • 缺少命名空间声明
  • Java 不支持的变量名称,例如由于大写或使用空格、连字符或其他不受支持的字符而导致的
  • XML 中的任何其他类型的语法错误
  • 检查 Console 是否存在问题(附加图片,其中控制台定义了 R 未在您的项目中生成的问题)

【讨论】:

    【解决方案3】:

    当我遇到这个问题时,我删除了 gen 文件夹,它将与所有 r 文件一起重新创建

    【讨论】:

    • 如下所述。这就是为什么当您执行 findById 并开始输入 r.id 时,您会看到 android.r 而只是 r。并且您的项目文件位于第二个变量 R 中。仅供将来参考。
    【解决方案4】:

    您会在文件顶部看到 import android.r 或 r.java 我忘了。您需要删除此行,清理项目,然后重新运行。
    基本上 android 使用 R 来引用项目中的项目。但是当那个 import 语句在那里时,它会覆盖查看您的项目目录并使用 androids

    【讨论】:

      【解决方案5】:

      我在尝试构建从 code.google.com (here) 下载的维基词典示例代码时遇到了同样的问题,我已导入新的 Eclipse Juno 项目集以使用 Android 4.1 和 JDK 1.6。

      这是构建项目后控制台的摘录:

      W/ResourceType(6292):错误的 XML 块:标头大小 103 或总大小 0 大于数据大小 0 C:\Development\WorkJava\android\sampleapps\Wiktionary\com.example.android.wiktionary.LookupActivity\res\values\strings.xml:23:错误:以非位置格式指定了多个替换;您是要添加 formatted="false" 属性吗? C:\Development\WorkJava\android\sampleapps\Wiktionary\com.example.android.wiktionary.LookupActivity\res\values\strings.xml:23:错误:意外结束标记字符串

      这里是 res/values/string.xml 的摘录:

      <resources>
      
      <string name="app_name">Wiktionary Word of the Day</string>
      <string name="app_descrip">A fast Wiktionary browser and Word-of-day widget</string>
      <string name="app_credits">"All dictionary content provided by Wiktionary under a GFDL license.  http://en.wiktionary.org\n\nIcon derived from Tango Desktop Project under a public domain license.  http://tango.freedesktop.org".</string>
      <string name="template_user_agent">"%s/%s (Linux; Android)"</string>
      <string name="template_wotd_title">"Wiktionary:Word of the day/%s %s"</string>
      <string name="template_wotd_archive_title">"Wiktionary:Word_of_the_day/Archive/%s/%s"</string>
      

      解决方案

      将formatted="false" 添加到最后3 个字符串定义(包含两个%s 替换占位符),如下所示,解决了问题。在gen文件夹中重建项目生成的R.java。

      <resources>
      
      <string name="app_name">Wiktionary Word of the Day</string>
      <string name="app_descrip">A fast Wiktionary browser and Word-of-day widget</string>
      <string name="app_credits">"All dictionary content provided by Wiktionary under a GFDL license.  http://en.wiktionary.org\n\nIcon derived from Tango Desktop Project under a public domain license.  http://tango.freedesktop.org".</string>
      <string name="template_user_agent" formatted="false">"%s/%s (Linux; Android)"</string>
      <string name="template_wotd_title" formatted="false">"Wiktionary:Word of the day/%s %s"</string>
      <string name="template_wotd_archive_title" formatted="false">"Wiktionary:Word_of_the_day/Archive/%s/%s"</string>
      

      【讨论】:

        【解决方案6】:

        在检查我的所有资源都没有错误、清理、重建、重新启动等之后,我仍然有这个错误。

        我通过从项目中过滤掉 SVN 文件来解决此问题。

        How to exclude .svn directories from search in Eclipse?

        虽然问题提到了搜索,但解决方案也与编译中使用的文件有关。

        重启,一切正常。

        【讨论】:

          【解决方案7】:

          “.xml 文件”和“图像文件”并确保名称小写。

          【讨论】:

            【解决方案8】:

            将工作区更改为新目录并设置其权限以供所有人使用

            【讨论】:

              【解决方案9】:

              就我而言,我在 res/drawable 中发现了一个包含大写字母的图像文件名。更改图像名称后。解决了,我可以建立项目了

              【讨论】:

                【解决方案10】:

                我多次遇到这个问题。经验法则是检查您的 .xml 文件。
                当 .xml 文件有任何问题时,不会生成 R.java。

                【讨论】:

                  【解决方案11】:

                  点击一下

                  Build --> Clean Project
                  

                  这对我有用

                  【讨论】:

                    猜你喜欢
                    • 2012-08-05
                    • 1970-01-01
                    • 2017-05-15
                    • 2012-08-27
                    • 1970-01-01
                    • 2013-05-18
                    • 1970-01-01
                    • 2011-06-04
                    • 1970-01-01
                    相关资源
                    最近更新 更多