首页

源码搜藏网

首页 > 开发教程 > 手机开发 >

安卓开发中R cannot be resolved to a variable 的解决办法

创建时间:2016-07-01 09:44  

在MyEclipse下新建项目test6,一步步按部就班创建完成,结果竟然是不能运行。

 

报了两个错误:

  1.  一个在MainActivity.java中,R cannot be resolved to a variable
  2. 另一个在AndroidManifest.xml中,The markup in the document following the root element must be well-formed.

 

第一个问题,Google搜索到了 这个,还有这个

发现我的R.java也没有自动生成,但是第一个帖子没帮助,第二个帖子提到了要检查AndroidManifest.xml文件。

于是,注意到我的AndroidManifest.xml文件是这样的,虽然它是自动生成的,啥也没改过,但是显然它是错误的,多了一行:</manifest>,删除之。

 

[html] view plain copy
 
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  2. ...  
  3.   
  4. </manifest>  
  5. </manifest>  

那么现在AndroidManifest.xml不再报错了,但是MainActivity.java中的错误依旧。

 

看了一下,R.java还是没生成,于是Google再搜索怎么手动生成R.java,于是看到了 这个帖子,最重要的两点如下:

  1. 选择菜单Project 勾选上 Bulid Automatically(自动构建部署) 。
  2. 选择菜单Project 点Clean后会重新构建项目,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生成。 

 

试了一下,还是不行,报错如下:

 

[plain] view plain copy
 
  1. [2012-10-26 23:49:42 - test6] W/ResourceType( 6764): Bad XML block: header size 28530 or total size 1815766121 is larger than data size 0  
  2. [2012-10-26 23:49:42 - test6] D:\Dropbox\VMware_share\workspace\test6\res\values\strings.xml:8: error: Error parsing XML: junk after document element  
  3. [2012-10-26 23:49:42 - test6] D:\Dropbox\VMware_share\workspace\test6\res\layout\activity_main.xml:6: error: Error: No resource found that matches the given name (at 'text' with value '@string/hello_world').  
  4. [2012-10-26 23:49:42 - test6] D:\Dropbox\VMware_share\workspace\test6\res\menu\activity_main.xml:2: error: Error: No resource found that matches the given name (at 'title' with value '@string/menu_settings').  
  5. [2012-10-26 23:50:47 - test6] W/ResourceType( 4752): Bad XML block: header size 28530 or total size 1815766121 is larger than data size 0  
  6. [2012-10-26 23:50:47 - test6] D:\Dropbox\VMware_share\workspace\test6\res\values\strings.xml:8: error: Error parsing XML: junk after document element  
  7. [2012-10-26 23:50:47 - test6] D:\Dropbox\VMware_share\workspace\test6\res\layout\activity_main.xml:6: error: Error: No resource found that matches the given name (at 'text' with value '@string/hello_world').  
  8. [2012-10-26 23:50:47 - test6] D:\Dropbox\VMware_share\workspace\test6\res\menu\activity_main.xml:2: error: Error: No resource found that matches the given name (at 'title' with value '@string/menu_settings').  
  9. [2012-10-26 23:53:43 - test6] W/ResourceType( 6328): Bad XML block: header size 28530 or total size 1815766121 is larger than data size 0  
  10. [2012-10-26 23:53:43 - test6] D:\Dropbox\VMware_share\workspace\test6\res\values\strings.xml:8: error: Error parsing XML: junk after document element  
  11. [2012-10-26 23:53:43 - test6] D:\Dropbox\VMware_share\workspace\test6\res\layout\activity_main.xml:6: error: Error: No resource found that matches the given name (at 'text' with value '@string/hello_world').  
  12. [2012-10-26 23:53:43 - test6] D:\Dropbox\VMware_share\workspace\test6\res\menu\activity_main.xml:2: error: Error: No resource found that matches the given name (at 'title' with value '@string/menu_settings').  

 

好多错啊,注意到strings.xml的第8行有错,看了一眼,还真是,多了一个箭头符号 ">"

 

[html] view plain copy
 
  1. <resources>  
  2.   
  3.     <string name="app_name">test6</string>  
  4.     <string name="hello_world">Hello world!</string>  
  5.     <string name="menu_settings">Settings</string>  
  6.     <string name="title_activity_main">MainActivity</string>  
  7.   
  8. </resources>>  

去掉之,再试手动生成R.java,这次成功了!

 

 

注意:

 

手动生成R.java时,焦点应该选择在项目名字上,我的是"test6"。

我开始将焦点选择在strings.xml文件上,然后试图手动生成R.java,结果却是自动生成了strings.out.xml文件??

这个帖子 给出了解释和解决办法,基本上,下面的引文是关键:

上一篇:自定义View之扩展式
下一篇:android 动画 ——视图动画(View Animation)

相关内容

热门推荐