• android 工程里缺少 R.java 文件原因和解决方法


    作为新手,学习android 的时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法。

    可是导入android源码后,基本都有错误,R.java也不会自动生成,

    因为是第一次导入工程,工程有错R.java就不会自动生成了,工程有错误,当然模拟器就不能启动,也就看不到效果。

    在网上找到的各种解决方法,总结如下:
      
    1、选择菜单  Project >> Clean ,前提是勾选上 Bulid Automatically(自动构建部署) , 点Clean后会重新构建项目。
      因为一般情况下,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生成。 

    2、选择工程,右键 Android Tools >> Fix Project Properties 这个操作有时候可以修正一些错误。 

    3、还有的说法是重新建一个空的工程,然后把这里面的代码,资源文件按照对应的包路径什么的拷进去,然后重新生成。
      这种方法,等价于第1种方法,都是重新构建部暑。 

        以上几种方法都试了,R.java依旧没出现,整个工程还是一大堆错误。任意点开一个有错误的布局XML文件,如果看到类似的错误代码:            android:layout_height="match_parent" , 就有可能是工程的SDK版本和eclipse默认的SDK版本不匹配的问题。
      于是选择工程,右键 Properties >> Android 然后看到右边的一块 Target Name, 把选中 Android 1.5,换到2.2(最新的),重新构建。
      错误没了,久未解决的问题解决了,R.java也出来了,一个字高兴啊,启动模拟器一切正常。 

      总结下当导入其它源码时候,首先要保证源码的SDK版本和你eclipse默认版本是否一致。 
      查看源码版本办法:打开default.properties 文件,看target=android-7 这后面这个数是多少。 
      版本对应关系:target=android-3 <---> android 1.5  ... ..., target=android-8 <---> android 2.2 其它的自己测试下。


    -----------------我是分割线-----------------------------------------------------------------------

     自动生成的工程里缺少R.java,

    按照网上的方法“右击你的工程(项目)——>Android Tools——>Fix Project Properties ”不管用, 

    确保项目编译了一下clean,或是右击项目-->property-->android-->applay一下 也是不行

    google和百度一通后,无果。

    继后跟踪发现,R.java在工程里面自动生成,后到官方站点看了帮助文档,发现通过platform-tools路径下的aapt.exe执行,

    再经过检测,aapt.exe程序好像已经损坏,不能执行,故而再sdk setup中执行,获取该文件,覆盖原来的,R.java自动产生了。

    问题解决,为何aapt.exe损坏,还有待考证:

    http://www.cnblogs.com/cngreatwall/archive/2011/03/11/1980525.html


    -----------------我是分割线-----------------------------------------------------------------------

    R.java 文件不能生成,但碰到的和上面提到的都不一样——

    1、:AndroidManifest.xml

            <activity android:name=".Index" android:label="@string/index"> </activity>

      提示 index没定义!

    2、包名改了, AndroidManifest.xml里的还没改过来。

    3、资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 a-z、0-9、_ 这些字符。 

  • 相关阅读:
    Python 爬取网易云歌手的50首热门作品
    对于AES和RSA的个人理解
    sqlzoo
    项目部署 uwsgi+nginx+crm
    nginx学习
    redis补充知识--- 缓存击穿、缓存雪崩、缓存穿透
    redis-cluster 搭建
    redis主从复制
    redis-sentinel (哨兵)
    redis 发布订阅
  • 原文地址:https://www.cnblogs.com/yshl-dragon/p/3296385.html
Copyright © 2020-2023  润新知