解决R.java无法自动生成

来源:互联网 发布:美国人工智能上市公司 编辑:程序博客网 时间:2024/06/08 01:20

在网上搜索了很多相关内容,解决办法无非就有几个:

1.project->clean  然后 build  automatically

2.adt 出问题,让从新安装

3.资源文件编码有错

第一个方法很简单,但是无效。

第二个方法我排除了,新建一个android工程,clean再build是能够生成R.java的。

第三个方法排除,因为我之前是能够编译的通过的。

实在想不出办法了,决定看一看problem中的错误,全都是R资源无法找到的错误。

这时是使用build  automatically自动编译的。在不断尝试中,将工程clean后,取消自动编译,手动编译,发现第一个错误报出了Error executing aapt: Return code -1073741819(以下简称aapt错误)。(手动编译才出现错误的可能原因是之前有编译通过过,在添加代码后出现问题,再编译时就不检测编译过的东西了)

然后在网上搜相关内容,内容大部分与下面连接内容相同。

原文地址:http://my.oschina.net/mastere/blog/183994

受原文启发,最终发现,我的错误原因是在res->menu中存在某个xml文件,内容如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.PwdModifyActivity" >


    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never"/>


</menu>

原文中提到是由于@+id导致的,于是我删除了@+id行,aapt错误确实是不存在了,但是R.java文件还是无法自动生成,考虑到这个xml文件是在使用eclipse创建activity的时候自动生成的,由于我没有使用menu功能,所以直接删除掉这个文件,结果就OK了。但是根本原因还是不知道。


后来我又把文件拷贝回去后测试,如果一直保持先clean再手动编译,删除掉item的所有内容就能编译成功,如果是clean后自动编译的,就会无法生成R.java,但是aapt错误会消失。


希望对遇到同样问题的朋友带来帮助。




0 0
原创粉丝点击