在MyEclipse下新建项目test6,一步步按部就班创建完成,结果竟然是不能运行。
报了两个错误:
- 一个在MainActivity.java中,R cannot be resolved to a variable
- 另一个在AndroidManifest.xml中,The markup in the document following the root element must be well-formed.
发现我的R.java也没有自动生成,但是第一个帖子没帮助,第二个帖子提到了要检查AndroidManifest.xml文件。
于是,注意到我的AndroidManifest.xml文件是这样的,虽然它是自动生成的,啥也没改过,但是显然它是错误的,多了一行:</manifest>,删除之。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
</manifest>
</manifest>
那么现在AndroidManifest.xml不再报错了,但是MainActivity.java中的错误依旧。
看了一下,R.java还是没生成,于是Google再搜索怎么手动生成R.java,于是看到了 这个帖子,最重要的两点如下:
- 选择菜单Project 勾选上 Bulid Automatically(自动构建部署) 。
- 选择菜单Project 点Clean后会重新构建项目,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生成。
试了一下,还是不行,报错如下:
[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
[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
[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').
[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').
[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
[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
[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').
[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').
[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
[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
[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').
[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行有错,看了一眼,还真是,多了一个箭头符号 ">"
<resources>
<string name="app_name">test6</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>>
去掉之,再试手动生成R.java,这次成功了!
注意:
手动生成R.java时,焦点应该选择在项目名字上,我的是"test6"。
我开始将焦点选择在strings.xml文件上,然后试图手动生成R.java,结果却是自动生成了strings.out.xml文件??
这个帖子 给出了解释和解决办法,基本上,下面的引文是关键:
++
在Eclipse中,选中你要运行的项目(而不是项目中的某个文件),点击鼠标右键 -> Run as -> Android Application
最后想说的是,MyEclipse自动生成的项目代码也有问题?!