我已经从谷歌代码下载了代码,但是当我在我的 Eclipse IDE 中导入该项目时,它不会生成 R.Java 文件。我搜索了许多博客和论坛并尝试了很多事情,比如清理、重建、从现有源创建项目等,但仍然面临问题。有人提到它有时是由SVN客户端软件引起的,但没有人提到任何解决方案。如果您自己下载并找到确切的问题,我将非常感谢你们。
11 回答
一般来说,要使其工作:
- 将项目导入eclipse(文件->导入->常规->现有项目到工作区)
- 在 Eclipse 中,手动创建 gen 文件夹并将其添加为源文件夹(右键单击您的项目,构建路径 -> 配置构建路径 -> 添加文件夹)
- 清理你的项目,你想生成 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" 在某些操作系统中无法解析,请查看此处了解更多详细信息。
每当您生成的 R 类未生成时,就表明由于 XML 资源的一些解析问题,生成它时存在问题。检查 IDE 中的错误控制台以找出具体错误。
常见问题有:
strings.xml
例如,您的 中的未转义字符you're
而不是you\'re
- 布局资源中缺少
layout_width
或layout_height
标记 - 缺少命名空间声明
- Java 不支持的变量名称,例如由于大写或使用空格、连字符或其他不受支持的字符
- XML 中的任何其他类型的语法错误
- 检查控制台是否存在问题(附加图像,其中控制台定义了 R 未在您的项目中生成的问题)
当我遇到这个问题时,我删除了 gen 文件夹,它将与所有 r 文件一起重新创建
您会在文件顶部看到 import android.r 或 r.java 我忘了。您需要删除此行,清理项目并重新运行。
基本上 android 使用 R 来引用项目中的项目。但是当那个 import 语句在那里时,它会覆盖查看您的项目目录并使用 androids
我在尝试构建从 code.google.com(此处)下载的维基词典示例代码时遇到了同样的问题,我已导入到一个新的 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>
在检查我的所有资源都没有错误、清理、重建、重新启动等后,我仍然有这个错误。
我通过从项目中过滤掉 SVN 文件来解决这个问题。
虽然问题提到了搜索,但解决方案也与编译中使用的文件有关。
重新启动,一切正常。
“.xml 文件”和“图像文件”并确保名称小写。
将工作区更改为新目录并设置其权限,使其可供所有人使用
就我而言,我在 res/drawable 中找到了一个包含大写字母的图像文件名。更改图像名称后。它已解决,我可以构建项目
我多次遇到这个问题。经验法则是检查您的 .xml 文件。
当 .xml 文件有任何问题时,不会生成 R.java。
只需点击
Build --> Clean Project
这对我有用