将旧的Android项目导入Eclipse时缺少AndroidManifest.xml文件

54
我有一个安卓项目是在Eclipse (GNU/Linux)上开发的,最后一次更新是半年前。现在我想将这个项目导入到Windows上的Eclipse 3.6(已安装ADT),通过在Eclipse中使用“文件” -> “导入项目”。当项目被导入时,在控制台上看到以下错误信息:
"[2010-12-10 02:17:12 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] 无法读取 C:\Program Files\Android\android-sdk-windows\AndroidManifest.xml: java.io.FileNotFoundException: C:\Program Files\Android\android-sdk-windows\AndroidManifest.xml (系统找不到指定的文件)"
为什么Eclipse会在Android SDK路径上寻找AndroidManifest.xml?实际上该文件似乎在项目目录中。如何解决这个问题并使项目编译?
20个回答

47

一个简单的解决办法是重新导入AndroidManifest.xml文件或更改文件并保存。这对我起作用了。


10
实际上,我只是在文件中做了一个更改(我添加了一个额外的换行符),并保存了它,这就为我解决了问题。 - mason81
@izak,你如何重新导入单个文件? - Pacerier
哇,人们仍然在2年后遇到这个问题。有人应该提交一个适当的错误报告。 - izak

27

最终解决方法是将项目从工作区中移除,然后执行文件 -> 导入 -> 将现有项目导入工作区的操作。这是使用ADT捆绑包时的解决方法。 - fIwJlxSzApHEZIl
当我尝试运行Facebook SDK示例项目时遇到相同的错误,这个方法对我很有效。 - ibaralf

22

您导入Android项目到Eclipse的方式是错误的。正确的做法是文件 -> 新建 Android 项目。在“新建 Android 项目”的“内容”选项卡中,选择“从现有源创建项目”,并选择生成目标。这样应该就可以解决您的问题。


2
那实际上是我在发现“导入项目”选项之前尝试的第一件事,但它也没有起作用。稍后我会粘贴错误信息。 - Gintautas Miliauskas
1
当我尝试使用“新建Android项目菜单”并指向现有目录时,Eclipse会提示:“此目录中已存在Eclipse项目。考虑使用文件>导入>现有项目。” - Gintautas Miliauskas
28
似乎问题在于我已经将项目放置在工作区目录中,而Eclipse试图用自身覆盖它。我已将源代码目录移动到另一个位置,现在一切都好了。谢谢。 - Gintautas Miliauskas
很抱歉,但您是错误的。这是Eclipse生成的文件夹冲突。解决此问题的正确方法之一是采用以下提出的解决方案(在此主题上),例如来自Michael或Andreson的解决方案之一。 - Anoyz
3
我喜欢最高票和被采纳的答案实际上是不正确的这一点 ;) - Remon van Vliet
在Eclipse 4.2中没有这个选项。 - Tim

7
似乎这个错误的产生是因为Eclipse认为新Android项目的默认位置是Android SDK路径。即使更改了项目位置,错误仍无法解决,所以诀窍是在Eclipse意识到生成错误的条件之前更改项目位置。
为了避免这种怪癖,我采取以下步骤导入旧项目:
1. 文件 -> 新建 -> Android项目 2. 取消“使用默认位置”选项并浏览到项目根目录。 3. 点击“从现有源代码创建项目”
重要提示:必须先执行步骤(2),再执行步骤(3),否则错误将继续存在并阻止项目运行。

6
你救了我的命。我花了两个星期来解决这个 bug。我非常讨厌 Eclipse。 - rnaud

5

我曾经遇到过同样的问题,尝试了上述所有方法都没有解决。后来我清理了项目,问题得以解决。


4

不要使用“文件”--->“新建Android项目”--->“从现有源创建项目”的方式,这会导致您看到的错误。选择“从现有示例创建项目”,并从下拉列表中选择它。这将起作用。

有经验的JAVA开发人员倾向于选择通常存在且适用于传统Eclipse项目的第一种选项。但是这不是您典型的项目,我敢打赌Google开发人员在向导中放置了这个特殊情况以适应差异。


3

我在使用Facebook SDK时遇到了这个问题,现在我通过以下步骤解决它:

  1. 关闭项目;
  2. 将“AndroidManifest.xml”文件复制到项目的根路径;
  3. 重新打开项目并刷新,问题已解决!

3
这对我很有用,顺便说一下:
我将项目名称更改为我正在导入的项目的精确名称。

3
我遇到了类似的问题。我尝试编译JakeWharton的视图页面示例,所以我在一个不同于工作区的目录中检出了GIT,这导致了问题。
Eclipse维护了两个文件夹: 1. 工作区目录下创建了一个新的工作区文件夹,Eclipse会在其中检查库和其他源代码,包括AndroidManifest.xml文件。 2. 现有文件夹不在根工作区下。
导入后修复问题的方法是手动移动Eclipse创建的新工作区文件夹中的文件。

在此之后,一个解决方法是右键单击,移动文件,然后将其移回到您想要的库文件夹或其他位置 - 这就是我为保持我的工作区整洁所做的。关于这个问题,我已经提交了一个错误报告 http://code.google.com/p/android/issues/detail?id=26369。 - ahmedre

2

Eclipse在命名约定方面似乎有些脆弱。其中一个导致此错误的原因是项目名称与工作区文件夹名称之间存在差异。我将一个名为“HelloDialogs”的项目的zip文件导入到名为“HelloDialog”的工作区文件夹中。这导致了“AndroidManifest.xml文件丢失”错误。一旦我正确地重命名了文件夹,一切都正常了。


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