我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
当前回答
我忘记在可声明样式的标记上设置name属性
<declare-styleable>
<attr name="myView" format="reference"></attr>
</declare-styleable>
我用
<declare-styleable name="Theme">
<attr name="myView" format="reference"></attr>
</declare-styleable>
我没有得到任何错误
其他回答
我也有同样的问题。当我检查它时,我发现布局下的XML资源的名称没有正确的命名约定。上面有一些大写字母。所以我重新命名,使所有字母小写,神奇的工作。
我忘记在可声明样式的标记上设置name属性
<declare-styleable>
<attr name="myView" format="reference"></attr>
</declare-styleable>
我用
<declare-styleable name="Theme">
<attr name="myView" format="reference"></attr>
</declare-styleable>
我没有得到任何错误
如果您的R.java没有生成,解决方案之一是删除名为“blabla.out.xml”的布局文件。
删除此文件后,尝试从project -> Clean菜单中清理项目。
在main.xml中使用硬编码文本作为按钮文本属性时,没有出现任何错误,只有三个警告。 就像这样:
<Button
android:id="@+id/scan"
.....
android:text="Scan" />
在将文本属性更改为android:text="@string/scan_device"后,立即生成了R.java。
因此,只要某个XML文件中出现任何错误/警告,它就会在我的机器/Eclipse上发生。
不过IntelliJ IDEA在警告方面没有这个问题。
这是我发现的又一个答案,之前的30个答案都没用。
我在strings.xml文件中发现了我的问题,尽管它非常非常奇怪。 我把我的应用精简到最低限度,这是唯一发现的东西。我甚至可以把它复制到一个全新的空白应用程序上。
在strings.xml文件中,它编译(并生成R.java文件):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Test_My_App</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>
然而,这不是:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Hello world</string>
<string name="app_name">My_App</string>
<string name="action_refresh">Refresh</string>
</resources>
有趣的是,几天前我删除了action_settings。从那以后,我已经清理了我的代码,再也没有出现过任何问题。今天,我在strings.xml文件中添加了额外的字符串,在清理代码后,车轮脱落了。 此外,如果我重新排列相同的3个字符串行,并清理代码,则不会重新生成R.java文件。
这是我解决问题的方法。
我希望它能帮助到一些人……