关于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)依旧无果。
今晚找了邹同学过来,估计是有过经验,当看到我实际操作之后就发现了可能出现的错误!
问题这这里:
- <?xml version="1.0" encoding="utf-8"?>
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@+id/scan"
- android:icon="@android:drawable/ic_menu_search"
- android:title="connect" />
- <item android:id="@+id/discoverable"
- android:icon="@android:drawable/ic_menu_mylocation"
- android:title="discoverable" />
- </menu>
title部分原来的代码写的是"@string/..."因为我没有在string文件中添加相关的字符串标示符对应值,所以这个菜单XML是一个错误文件,导致R.java不会自动产生带有错误的XML文件的ID。这种情况很特殊,这样的情况在eclipse的android开发环境下完全不会报出任何错误(项目菜单栏中不会显示任何文件错误!),这才让我花了两个晚上也没弄明白到底是哪里出错了。
后来我发现其实细心点也是能发现这个错误所在的,或许是因为我缺乏经验吧。以前一直无视console视图下的运行信息……
- [2012-03-08 22:33:22 - TTTTT] H:\Users\wenyu\workspace\TTTTT\res\menu\option_menu.xml:3: error: Error: No resource found that matches the given name (at 'title' with value '@string/connect').
- [2012-03-08 22:33:22 - TTTTT] H:\Users\wenyu\workspace\TTTTT\res\menu\option_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也不会报错!
转载地址:http://blog.csdn.net/w542525174/article/details/7335082
关于android开发添加菜单XML文件之后无法在R.java中生成ID的问题的更多相关文章
- Android开发之获取xml文件的输入流对象
介绍两种Android开发中获取xml文件的输入流对象 第一种:通过assets目录获取 1.首先是在Project下app/src/main目录下创建一个assets文件夹,将需要获取的xml文件放 ...
- eclipse android开发,文本编辑xml文件,给控件添加ID后,R.java,不自动的问题。
直接编辑xml文件给控件添加id,不自动更新.原来的id写法:@id/et_tel 然后改写成这样:@+id/et_tel 然后就好了!操`1
- Android开发,布局xml文件命名注意事项——不能包含任何大写字母
转自:http://blog.sina.com.cn/s/blog_628b45090100zuit.html 在开发Android应用时,会接触到布局文件,一般在 工程名/res/layout/*. ...
- android开发 解析服务器端xml文件数据存储到android客户端SQLite数据库
以下面xml文件为例对其解析(假设此xml就在服务器端Server项目下的servlet包下的MenuServlet文件的输出流中): <?xml version="1.0" ...
- 解决android中Layout文件下的xml文件配好后,R类中不能自动生成相应代码
不能更新的原因: 1.在xml文件中代码错误或者格式错误 2.eclipse 编译器是老版本 3.布局文件的文件名有大写字母 4.含有相同文件名.格式的xml文件 解决方法: 1.找到出错的xml文件 ...
- eclipse中android开发怎么修改xml文件字体大小
windows->preference->General->appearence->Colors and Font->Basic->Text Font.点击右侧的E ...
- ImageView设置边框 以及内部图片居中显示 在AndroidStudio中添加shape.xml文件
效果如图 边框设置:shape文件 <shape xmlns:android="http://schemas.android.com/apk/res/android"> ...
- Android color(颜色) 在XML文件和java代码中
Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...
- 将Xml文件递归加载到TreeView中
#region [通过XDocument的方式将Xml文件递归到TreeView控件中] //读取Xml文件(XDocument) //1.加载Xml文件 XDocument document=XD ...
随机推荐
- ashx-auth-黑色简洁验证码
ylbtech-util: ashx-auth-黑色简洁验证码 ashx-auth-黑色简洁验证码 1.A,效果图返回顶部 1.B,源代码返回顶部 /ImageUniqueCode.ashx &l ...
- Codeforces 167B Wizards and Huge Prize(概率dp)
题意: n个人,开始有一个容量为k得背包,击败一个人背包可以获得一定容量或得到一个财富(放入背包内),给出击败每个人的概率,求至少击败l个人,且背包容量大于获得的总财富值的概率 分析: 状态好确定,d ...
- uilib库gdi句柄泄漏bug修复,duilib防止gdi泄漏的小提醒
转载请说明原出处,谢谢~~ 今天下午群友的网友让我帮忙看一下的duilib程序的问题,程序中包含了List控件,会定时清除所有子项目然后重新添加.但是程序运行一段时间后会自己崩溃!我编译了源码运行后在 ...
- c++与java的优缺点
大多数程序员都认为C/C++会比Java语言快,甚至于觉得从Java语言诞生以来,"执行速度缓慢"的帽子就应当被扣在头顶,这种观点的出现是由于Java刚出现的时候JIT编译技术 ...
- iOS数据存储之对象归档
iOS数据存储之对象归档 对象归档 对象归档是iOS中数据持久化的一种方式. 归档是指另一种形式的序列化,但它是任何对象都可以实现的更常规的类型.使用对模型对象进行归档的技术可以轻松将复杂的对象写入文 ...
- .net,mvc使用bootstrap做一个标准后台
今天准备搭一个公用后台,使用bootstrap,方便今后开发,顺便mark一下 后期列表页将使用kendo-ui,增强后台的效果 下面是代码... login页面 @{ Layout = null; ...
- Java中Runnable和Thread的区别(转)
http://developer.51cto.com/art/201203/321042.htm 第一种方式:使用Runnable接口创建线程 第二种方式:直接继承Thread类创建对象 使用Runn ...
- Android与Mysql服务器通信
需求:在手机端读取蓝牙传输过来的数据,然后发送到mysql 安卓前期版本可以直接使用mysql connector, 现在只能通过访问url传递数据了. 服务器端写php脚本,接受发送过来的url请求 ...
- lamda表达式相关知识
lamda表达式写法 dt = datado.SelectDalMeath(sqlStr.ToString()); var x = (from r in dt.AsEnumerable() selec ...
- 自动化运维工具ansible-如何设置客户端多python版本问题
问题:在使用ansible进行管理客户主机时,发现客户主机安装了多个版本的python,并且默认版本为3.0 shell>>cat list 192.168.2.9 shell>&g ...