您的位置:首页 > 编程语言 > Java开发

使用Eclipse开发Android报错:Project has no target set. Edit the project properties to set one.

2016-09-12 15:20 381 查看

使用Eclipse开发Android报错:Project has no target set. Edit the project properties to set one.

在使用Eclipse开发Android时可能会遇到Eclipse的报错信息:Project has no target set. Edit the project properties to set one.其实不是自己的工程由问题,而是由于导入WorkSpace的方式有问题。下面分情况来说明:

1.

WorkSpace目录下没有.metadata文件目录,也没有工程文件,那么直接Eclipse直接进入会自动生成.metadata文件夹。

例如,在桌面上没有.metadata文件夹,但是把桌面当成是WorkSpace来进入:



那么会直接在桌面上建立.metadata文件夹。

2.

桌面上有.metadata文件夹。

这个时候情况比较复杂。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果之前这个WorkSpace有工程但是自己手动删除(直接在Windows下的文件系统中删除),那么会出现



的问题,原因很简单,用编程语言来描述就是,我现在有指针(.metadata文件夹中的信息),指向原本存在的某个对象(工程),我把这个对象删除了,但是指针还在,当然访问会出错,就是这个原因。

解决办法:

1.直接把和原来工程名字一样的一个工程考入WorkSpace就可以正常使用:指针还指向那里,对象又有了,正常访问。

2.在Eclipse里删除这个工程(这个工程的指针,也就是从.metadata文件里面删除有关的指针信息) :



这样就删除“指针”了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果之前有.metadata文件,但是没有“指针”,也就是说原来的WorkSpace中没有工程,现在人工手动把一个工程copy到这个WorkSpace中,那么在Eclipse直接打开WorkSpace时候不会有工程文件,原因就是:我内存(WorkSpace)中有对象(工程文件),但是没有指针(.metadata文件夹信息)啊!Eclipse是从.metadate来读取信息的,没有指针,也就不会显示对应的工程了,也就不能对对应的工程操作了!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

原来WorkSpace就没有工程现在也没有,正常

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

总结以上,就是“指针”、“内存”、“内存中的对象”之间的关系。

3.

言归正传,出现题目中的出错信息,是由于,在当前WorkSpace下存在一个工程,但是它不被.metadata所指向,也就是没有包含在里面,直接Import导入工程看似正确,但是实际会出错。





Finish确定,就会出现我们标题出现的报错,不仅如此,还会损坏原来存在于WorkSpace的工程文件,里面的 AndroidManifest.xml 文件被空文件覆盖了!这是很坏的一件事情,导入工程,把文件损坏了!再次提醒,备份很重要。

解决办法:

把这个工程放在不是WorkSpace这个目录下的任何一个目录中,然后Import导入就可以,和正常的一样,虽然看起来感觉怪怪的,明明就在WorkSpace里面,但是不能导入,一旦莽撞地导入还会出错,损坏工程文件。

例如,把这个工程文件放在F盘下,可以在当前的WorkSpace(桌面作为WorkSpace)直接导入工程文件,一切正常。

还有一个解决办法,经过查网上的相关资料得知,直接新建一个和原来一样的工程就可以,Eclipse会自动在当前目录下查找是否有与将要新建工程同名的工程文件,如果有,那么直接建立连接(“指针”指向“对象”),如果没有,那么真正新建(“指针”新建,“对象”新建)。





OK!完美导入!

其他:

在选定某一个文件夹作为WorkSpace时,会在此WorkSpace下自动建立一个叫“.metadata”的文件夹,该文件夹中包含的内容有工程的描述,比如里面包含了有多少个工程,每个工程叫什么名字等一些信息,以及WorkSpace的偏好设置(Preferences),比如自己写了一个.epf的文件来设置编辑时的背景颜色,代码颜色等。WorkSpace里面大概就是包括这样子的一些信息,是对于整个WorkSpace的说明以及对于工程的描述。

实际上将.metadata文件的信息比作“指针”,将WorkSpace比作“内存”,将工程文件比作“内存中的对象”,十分好理他们之间的对应关系。

在实际做的时候,尽量不要以新建Android Project来实现导入WorkSpace下存在的工程到Eclipse里面,这样有可能会出现字符资源strings.xml文件被清空的可能,应该是以Java Priject 或者直接 New Project 来建立。

参考Blog:http://blog.csdn.net/Bcai2/article/details/44279101

http://blog.csdn.net/jiangjinwang/article/details/50552798

为本人之前的博文,此片只是把之前弃用的博文搬到这里。

如上述有不正确之处,敬请指出,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: