• 关于android开发添加菜单XML文件之后无法在R.java中生成ID的问题


    因为和同学分开做的android软件,现在想整合他做的界面部分,于是拷贝了res和src文件夹的文件,其中包括一个res.menu文件夹中的XML。但是每次将该文件导入到工程总无法自动在R.java中生成相应的ID。

    上网找了两种方法:

    第一种:使用项目(project)->clean……清除之后重新build项目。当我clean之后发现R.java文件被删除了,然后无论我怎么重新运行也不能再自动生成出来。于是乎……悲剧了,重新建了新工程并使用其他方法了!

    第二种:右击菜单中的该工程选择Android Tools->Fix Project Properties。经过多次尝试,发现这个选项并没有做出任何修改……(也可能是我发觉不出吧),即使我结合上面的第一种方法clean之后也没有任何反应!

    那么,问题到底出在哪里呢??在我的项目菜单中显示的是整个项目没有错误(当然,除去那些因为菜单ID没有着落而出现的错 误),完全不知道该怎么办了……尝试新建工程并在res文件夹下建立menu文件夹,然后再在里面新建XML文件,接着是复制代码到该文件夹里。依旧没有 报错,但是依然无法自动生成在R.java文件夹中!

    经过了各种网上查资料和自己的各种尝试,花了我两个晚上,期间甚至包括自己手写R.java文件(当然,这种方法是不可取的,假如程序能运行成功的话,自己编写的那一堆代码全部会被删除,R.java依旧是按照系统自动生成的编写方法去编写相关的ID)依旧无果。

    今晚找了邹同学过来,估计是有过经验,当看到我实际操作之后就发现了可能出现的错误!

    问题这这里:

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <menu xmlns:android="http://schemas.android.com/apk/res/android">  
    3.     <item android:id="@+id/scan"  
    4.           android:icon="@android:drawable/ic_menu_search"  
    5.           android:title="connect" />  
    6.     <item android:id="@+id/discoverable"  
    7.           android:icon="@android:drawable/ic_menu_mylocation"  
    8.           android:title="discoverable" />  
    9. </menu>  

    title部分原来的代码写的是"@string/..."因为我没有在string文件中添加相关的字符串标示符对应值,所 以这个菜单XML是一个错误文件,导致R.java不会自动产生带有错误的XML文件的ID。这种情况很特殊,这样的情况在eclipse的 android开发环境下完全不会报出任何错误(项目菜单栏中不会显示任何文件错误!),这才让我花了两个晚上也没弄明白到底是哪里出错了。

    后来我发现其实细心点也是能发现这个错误所在的,或许是因为我缺乏经验吧。以前一直无视console视图下的运行信息……

    1. [2012-03-08 22:33:22 - TTTTT] H:UserswenyuworkspaceTTTTT esmenuoption_menu.xml:3: error: Error: No resource found that matches the given name (at 'title' with value '@string/connect').  
    2. [2012-03-08 22:33:22 - TTTTT] H:UserswenyuworkspaceTTTTT esmenuoption_menu.xml:6: error: Error: No resource found that matches the given name (at 'title' with value '@string/discoverable').  

    其实它早就告诉我哪里出错了,但是我却完全不知道!!这提醒我,以后要注意看看console下的信息了。



    补充:

    刚才还发现,除了XML文件错误java不会有预编译错误提醒,不能自动生成R.java文件,还会有一种情况:资源文件是不 能出现大写字母命名的!如果资源文件用大写字母命名,比如图片名,那么图片是可以导入到res文件夹里面对应的子文件夹里面,但是同样的,R.java也 是不会自动生成的,而且eclipse也不会报错!

  • 相关阅读:
    Community Server 2.0 学习笔记:如何实现在线人数?
    CommunityServer2.0改造的一些心得[粗糙版]
    DotLucene源码浅读笔记(2) : Lucene.Net.Documents
    有意思.在线版的photoshop
    电子商务教程[资源]
    Lucene 1.9 多目录搜索的的一个bug
    小总结:DotLucene如何才能快速生成索引?
    DotLucene源码浅读笔记(1)补遗:编写简单中文分词器ChineseAnalyzer
    Windows下傻瓜式快速搭建Discuz论坛(也可以参考用于搭建其他php论坛)
    Lucene.net常见功能实现知识汇总
  • 原文地址:https://www.cnblogs.com/LiaoHao/p/3331626.html
Copyright © 2020-2023  润新知