R.java文件背后的魔法

最近我一直在R.java文件中遇到一些问题。 现在我决定做一个备份,并删除文件,看看会发生什么。

什么都没有发生,所以我创build了一个空的R.java文件,希望最好。 现在Eclipse似乎发现该文件被篡改,甚至发出警告:

R.java was modified manually! Reverting to generated version! 

这就是全部。 我试图手动build设,但没有结果。

所以,我有两个问题:

  1. 我应该怎么做才能强制Eclipse重新生成文件
  2. 这里发生了什么? 如何创build文件,生成文件的代码在哪里?

我将不胜感激任何帮助。 像往常一样,问题发生在截止date前几天:)

我有一个问题让我的Android应用程序进行编译,似乎莫名其妙的生成R.java失败的错误。

这个问题是由我之前在构build过程中杀死Android模拟器造成的。 不要这样做! 一个线索是几个留在* .out.xml文件的外观。

解决scheme是select项目,单击Project-> Clean,然后手动删除所有* .out.xml文件 。 只有这样,我才能点击Run-> Run并成功构build。

还有一件事:我正在使用Eclipse。 我必须确保在Package Explorer中select了项目,而不仅仅是一些随机的源文件。 容易不通知!

R.java在构build时自动生成。 它的内容是基于资源文件(包括布局和首选项)。

当你删除它,它被重新创build,但如果你创build自己的,你会遇到麻烦,因为构build系统不会取代它。

你可以简单地删除它(手动或通过select“项目” – >“清理”)并重build您的程序。

我有这个问题好几次了,而且大部分时间都是由“res”文件中的一些错误引起的,请检查所有res文件,主要是XML,以及可以构build之后的一切。

例如,这个问题的两个常见原因可以是:

  • 没有正确拼写XML文件中的样式属性的名称。

  • 未正确closures语言环境文件的XML中的string。

我发现这个问题 – 我创build了一个只有Y轴上定义的补丁区域的9patch映像(我试图阻止在另一个上resize)。

问题依然存在:为什么没有关于错误的警告? 或者如果有 – 埋在哪里?

对不起,但是尝试在Eclipse中检查输出。 可能是因为你有一些阻止Eclipse完成构build过程的错误(检查你的AndroidManifest.xml,是否正确?)我的意思是,你应该检查所有的资源文件(string.xml,layouts …)和接口(* .aidl),可能会有一些问题(不一致的语法,或者什么东西….),防止日食生成R.java。

我有同样的问题,这是我用大写字母命名资源文件(.png图像)。 (ImageButton001.png而不是imagebutton001.png)。

更改文件的名称我的R.java回来了。

Ragards,Juan

如果可用内存不足,构build工具将自动失败 (Eclipse不会显示任何错误或报告错误日志中的任何内容)。 closures其他打开的应用程序(例如模拟器和浏览器),然后为应用程序清单文件添加一个空间并保存。

正如庞金所说 – 你可能有一个单一的问题,导致R不能重新生成自己,因为你现在有一百万,一个问题。

不要试图自己创buildR类。 试着想想你已经搞乱的最后一个XML,并检查错误

我在这里遇到了同样的问题

确保没有错误是您的Manifest文件。 如果删除/res/values/strings.xml中的资源stringapp_name,则不知道如何生成R.java权限。 在做HelloSpinner教程时,我发现这是一个问题。

我发现不需要的资源导致了一个问题。 只要我删除资源R.java生成。

我有这个问题,重buildR.java我削减了我刚刚正在处理的XML文件中的代码(或尝试其他人,如果这不起作用),删除该文件,然后创build另一个具有相同的名称和将代码粘贴回去。 希望这可以帮助。

有一点可以很好地知道,如果一个XML文件包含一个?,那么R.java不会被重新生成,并且错误不会在XML文件中显示(有时会在一段时间后显示出来)。我有一条类似于:

< string name="questionmark"\>?< /string> <br>

试图改变? 到其他东西,看看发生了什么R.java文件 – 为我工作

我有一个类似的问题,我用一个大写字母重命名Raw文件夹中的.wav文件。 当我改为全部小写的时候,清理了这个项目,并且把它重buildR.java

正如其他人所说,远离创build自己的R.java文件。 我刚开始使用Android时遇到了同样的问题,并花了一些时间来弄清楚编译错误的原因。

你想用R.java文件做什么?

我有同样的问题。 我刚刚去了:

 Project -> Properties -> Android 

并为我的项目select了正确的模拟器,在那一刻我有三种不同的select。 我意识到我在某个特定的时刻改变了模拟器。 所以尝试改变模拟器,这可能会有所帮助!

祝你好运

我有与IntelliJ相同的问题。 问题是,我已经在strings.xml定义了两次app_name出于某种原因,IDEA检查没有自动select它。

我在另一个网站上读到这个,它帮助了我:

“如果这不能解决你的问题,那就试着修改你的AndroidManifest.xml (只需要添加一个空格并保存),我听说会强制R.java重build。

所以只需在清单文件中添加一个空格,然后重build!

作为一个方面说明,通常这些* .out.xml文件是通过尝试构build您的项目而生成的,而XML文件则集中在编辑器中

我有类似的问题。清理项目没有解决问题,并没有在代码或文件名中的大写或空格错误。

当你selectPROJECT – > CLEAN,然后取消选中“Start a build immediately”选项,解决scheme就会进入popup窗口。 清理项目。 closures并重新打开Eclipse,然后生成项目(PROJECT – > BUILD)。

问题仍然是为什么简单的清理和构build没有closuresEclipse没有工作。