Eclipse地狱...无法读取项目描述文件(.project)

22
我觉得 Eclipse 似乎在故意让我不开心。几个小时前,我的项目一切都很正常,可以编译通过。但突然之间,一切都改变了。Eclipse 不知道怎么做到的,把我对文件(activity、manifest等)所做的所有更改都清除了。我确保经常保存,但当我试图运行该项目时,出现了一个构建错误的提示。我检查过了,却没有任何问题,于是我尝试关闭 Eclipse,重新打开看看是否会消失错误提示。结果惨痛的是,Eclipse 把我所有的文件都清空了,最后我只得到了一堆空的代码文件。我试着运行,结果出现了以下错误信息:

无法读取 'com.example.android.nfc.simulator.FakeTagsActivity.FakeTagsActivity' 的项目描述文件(.project),因为该文件在磁盘上已被更改,现在包含无效信息。只有当描述文件恢复到有效状态时,项目才能正常运行。

请问有人知道这是怎么回事,并且如何解决吗?


你能否更新一下你的问题,附上损坏的.project文件? - Paul Webster
你有什么样的项目?它是一个纯Java项目吗? - Tobias Willig
1
如果你右键单击项目并选择“从本地历史记录还原...”,会发生什么?你能看到以前可以恢复的版本吗? - Stefan Buynov
请检查此链接:http://stackoverflow.com/questions/7990565/eclipse-cannot-open-android-project。 - W00di
感谢@StephenC提供的绝妙提示,我是新手,请问如何进行版本控制?有教程或指导可以吗?再次感谢。 - McLan
10个回答

10

我建议删除所有与Eclipse相关的配置文件(如果您手动更改了其中任何一个,请确保备份),然后再按照以下步骤重新导入项目:

文件 -> 导入... -> 现有项目到工作区

在执行此操作之前,请确保对整个项目进行备份。


主要和备份都受到了影响。 - Kobojunkie

3

当Eclipse遇到某些不明确状态时,我通常会发现重新创建工作区目录中的.metadata文件夹很有用。这是一个极端的解决方案,但通常对我有效。之后,您可以重新导入所有项目。


1
只有在你没有继承一个项目,这个项目是由一个天才程序员配置了他的构建环境,以至于它只能在他自己的机器上构建时,这才是真的...依赖于插件和其他附加组件,这些组件不知何故既没有提交到版本控制中,也没有在其他地方记录... - Withheld

2
这是因为我的.project文件中存在冲突。我在文本编辑器中打开它并解决了冲突(在我的情况下,删除了从====...>>>branch...以及<<<HEAD)。然后我就能在eclipse中打开这个项目了。

1
我遇到了同样的问题(使用基于Eclipse的Zend Studio 12)。我的问题是,我正在从远程服务器创建项目,并下载了所有内容,其中包括旧项目的.project文件。直到我关闭程序并再次尝试打开它时才显示此错误(通常要等到第二天)。
我似乎已经通过确保在初始化项目时不下载.project文件来解决了这个问题。

0

我在Eclipse中也遇到了同样的问题,但真正的问题是我将实际的源项目文件夹从源位置(Eclipse尝试获取项目的位置)移动到其他地方,因此我的Eclipse无法获取web.xml文件,因为它不可用。现在我已将源项目文件夹位置更改为Eclipse正在搜索的路径。问题已解决。


0
如果您使用git,请完成合并,例如在您的androidmanifest中删除头部。

0

如果项目文件是一个文本文件,那么如果你在版本控制中有它,你可能想从那里复制过来。

在尝试下面的步骤之前,请备份您当前的项目状态。

假设您没有旧副本,您可以在文本编辑器中打开它并尝试查看是否有明显的错误。

如果这些操作失败,请将项目的源文件复制到新位置(不包括eclipse配置文件),并将其作为新项目导入到eclipse中。


不幸的是,我没有将它放在版本控制中。我只是复制了旧文件,而且似乎Eclipse能够对两个文件进行更改。 - Kobojunkie

0

如果你仍然拥有其他所有源码文件(.java文件、AndroidManifest.xml文件、资源文件),你可以尝试通过进入包含项目的文件夹,删除你说现在为空的.project文件,然后使用新的项目向导从现有的源码树中重新创建项目(和.project文件)来恢复你的项目。

从菜单中选择文件 -> 新建... -> 项目,然后在第一个对话框中选择从现有代码创建 Android 项目

如果你对.project做过特殊处理(依赖于特定的.jar文件或更改了类路径),则在重新创建项目后可能需要重新执行这些步骤;但至少它应该会提取你已经拥有的代码。


0
如果所有的文件都是空的,而且您没有工作备份,我无法提供帮助。我建议未来使用适当的版本控制。
使用git或mercurial,它们有很好的UI集成(参见tortoisegit/tortoisehg)。
为了将构建过程和库管理与eclipse解耦,请看一下Maven或Gradle,这可能会在未来的项目中有所帮助。

-1

只需在您的工作区中删除“servers”文件夹,然后重试即可。


这是一个建议,因此适合作为注释。 - CinCout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接