• Android ADT更新后无法编译生成R.java的问题解决方案


    这两天非常手贱的更新了Android SDK和ADT插件(ADT 21),结果别人传给我的代码无法编译生成R.java文件,后来发现自己新建的工程同样无法生成这个文件,查找了N多网上的资料终于解决该问题,记录下自己的经验,同时鄙视下越来越不靠谱的google。

    错误提示可能与“java.lang.NullPointerException”或者提示"can not find R.java"有关。

    1. 看到有人删除workspace下的.metadata目录就ok,我也删除了一把,然后重新导入工程,再设置自己的首选项,仍然未能编译成功;
    2. 另外看到还有人说是因为工程目录下存在.svn等没有文件名只有后缀的文件名导致这个问题,但是我的项目还没纳入svn或者git进行管理,所以肯定不是这个问题,别人有问题的貌似可以通过升级svn版本到1.7解决;
    3. 甚至还有人对于不是Android项目的工程通过拷贝一个project.properties到工程目录来解决问题的;
    4. 好吧,我先对工程Fix Project properties和Project->Clean来一次,清空一些不必要的代码;
    5. 然后在Build Path中添加gen目录和src目录,如有必要删除gen目录下的所有内容;
    6. 看到有人说ADT 21存在BUG,好吧,我去Help->About Eclipse->Installation Details中将ADT的工具全部升级一遍(ADT 22),然后重启Eclipse;
    7. 现在要求我升级Android SDK,我忍了,我升级到SDK v17;
    8. 发现仍然不能编译,但是发现Tools中有升级选项?我继续升级~~~;
    9. 升级Android SDK、Android SDK Tools、Android SDK Platform-tools、Android SDK Build-tools;
    10. 并且将$(SDK)/platform-tools和$(SDK)/platform-tools、$(SDK)/build-tools/17.0.0全部添加到我的path环境变量中,升级过程中关闭Eclipse;
    11. 好吧,升级过程中甚至可能需要关闭几次Android SDK Manager;
    12. 最后升级完毕的工具列表:


    13. 关闭SDK Manager,打开Eclipse,编译工程成功;

    搞定了这个问题之后有些经验需要分享:

      1. 尽量不要使用Google集成好的Eclipse+ADT工具;
      2. 尽量不要有新版本就去升级;
      3. 升级之前一定要做好备份工作(包括Eclipse+ADT的备份、SDK的备份),我就是太相信google了导致两天左右时间都在解决这个问题;
      4. 升级之前最好查一下该版本ADT插件和SDK有无BUG,尽量在家庭电脑上升级后发现没问题再升级工作环境;
      5. 升级之后再打开SDK Manager检查下是否全部升级完毕;
      6. 另外一个小技巧:如果通过File->Import导入工程发现不能成功运行,试试看New Project->from exist code看看,貌似很多这种情况的;
  • 相关阅读:
    laravel使用ORM或者DB使用select进行查询指定字段时,可以给字段设置固定值
    sql语句左链接left join--3张表关联
    mysql将字符串转成数字
    laravelORM查询构建器查询,在排序中计算
    php 商品以元为单位设置保留两位小数
    php中根据二维数组中一维数组的某个字段进行排序
    js sort方法根据数组中对象的某一个属性值进行排序
    MySQL中查询表及索引大小的方法
    c++ const成员函数
    c++ sizeof和strlen 字符数组和字符指针
  • 原文地址:https://www.cnblogs.com/huanjianlin/p/3213613.html
Copyright © 2020-2023  润新知