26

为什么 Eclipse 在构建 Android 项目时会陷入无限循环构建工作区...和(重新)构建工作区...和(重新)构建工作区...

这是一个已知的错误?

摆脱这个循环的正确方法是什么?

笔记:

  1. 如果我取消选中Project > Build Automatically,它会构建得很好,甚至可以导出完美运行的签名发布 APK。
  2. 此问题仅在我升级到最新的 SDK r19 后才开始。在此之前(SDK r11)我从未遇到过这个问题。
  3. 错误 160868准确描述了这个问题。但是从那以后就没有解决了吗?
  4. 在这里找到了一个类似的问题描述,但和上一个一样,它是旧的并且与 Android 开发没有直接关系。
  5. 问题 27940表明在处理BuildConfig.DEBUG可能相关或不相关的 const 命名时存在错误。但它不是在 r18 中修复了吗???
  6. 我在 Android 构建系统中发现了这个用于自动标记/日期标记的很棒的技巧,但我没有使用类似的东西,除了仔细检查和验证构建器的顺序是否正确,项目构建器列表顺序(相同的顺序与其他不表现出这种无限循环构建行为的项目一样)。
  7. 我的直觉告诉我,可能有一个锁定文件或标志以某种方式卡住了(只读模式?),从而混淆了构建系统。知道该布尔值可能是什么以及在哪里可以找到它吗?
  8. 如果我首先在同一个工作区中打开另一个项目(没有出现这个问题),有这个问题的项目会奇迹般地停止无限重建。如果我颠倒首先打开哪个项目的顺序,则不会发生这种情况。这是否意味着 Eclipse/SDK/ADT 构建系统中的 gremlins?

请不要“盲目射击”:只有当你亲身经历过这个惊人的现象(并解决了它)或可以指出一篇经历过这个惊人的现象(并解决了它)的文章时才回答这个问题。

4

9 回答 9

25

原来错误 27940 尚未修复。

我使用以下解决方法:

  1. 禁用“项目>自动构建”
  2. 项目 > 清洁
  3. 项目 > 全部构建
于 2012-06-27T01:30:21.330 回答
3

您是否将工作区添加到 Windows 7 库(即 Windows Explorer 收藏夹或 Windows Explorer 库)?另一个用户在这里遇到了类似的问题。

如果您在其他编辑器中打开了某些内容(在项目的目标目录中),这也可能导致无限的“构建工作区”循环。

于 2012-06-18T01:33:45.543 回答
2

我通过打开模块的 .project 文件解决了这个问题。有两个多余的条目,删除一个有帮助:

<buildCommand>
    <name>org.eclipse.m2e.core.maven2Builder</name>
    <arguments>
    </arguments>
</buildCommand>
<buildCommand>
    <name>org.eclipse.m2e.core.maven2Builder</name>
    <arguments>
    </arguments>
</buildCommand>

有时它也可能是由以下两个条目引起的,您必须从中删除旧org.maven.ide条目

<buildCommand>
  <name>org.maven.ide.eclipse.maven2Builder</name>
</buildCommand>
<buildCommand>
  <name>org.eclipse.m2e.core.maven2Builder</name>
</buildCommand>

也可能有两种相同的性质:

<natures>
    <nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
<natures>
    <nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>

或两种本性,其中一种是旧的

<natures>
    <nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
<natures>
    <nature>org.maven.ide.eclipse.maven2Nature</nature>
</natures>

只需删除多余的或旧的org.maven.ide.eclipse.maven2Nature

于 2016-01-28T09:56:52.063 回答
1

我遇到了同样的问题,有一段时间我不知道为什么。然后我终于弄清楚是什么原因造成的(无论如何对我来说)。

事实证明,我的工作区中有一个旧项目,它使用了我的一个自定义库,但是构建路径没有正确设置以使用该库(遗憾的是 Eclipse 不能简单地告诉我!)。我已经从另一个硬盘驱动器复制了这个工作区,我猜现在文件路径都不同了。

因此,如果您的工作区中的任何项目使用任何外部库,请确保构建路径已定义您的库 ( Properties -> Java Build Path -> Projects[tab].

我希望这对其他人有所帮助。

于 2013-08-09T23:26:24.657 回答
0

除了构建所有项目之外,您还可以关闭已完成的项目。
单击完成的项目并
转到
项目->关闭项目
希望这会起作用

于 2014-06-19T11:56:41.390 回答
0

两个项目相互引用。

转到“Project->Properties->Project References”并检查两个项目的引用,这会导致自动构建时出现无限循环。

于 2014-11-12T15:23:34.133 回答
0

就我而言,这可以通过以下方式解决:

我打开了一个命令行窗口,当前目录设置为要构建的项目的目标文件夹。这导致了无限循环。关闭窗口并解决问题。

我想,如果有什么东西阻止了 eclipse 删除一些目标文件夹,它会一遍又一遍地尝试。

于 2015-05-18T12:06:41.787 回答
0

我遇到了同样的问题并通过删除解决了它:项目>属性>构建器> JavaScript验证器

我的 webapp 上没有 javascript。

于 2017-04-13T08:10:44.547 回答
0

加上我的两分钱:是的,现在是 2019 年,所以现在安装了 Eclipse 2019-06... eyeroll我的意思是我偶尔也会遇到早期版本的问题,但是在升级到 Eclipse 2019-06 之后,我突然有了三个这样的“睡眠者”并行运行,无法再做任何事情。

为了让它再次工作,我不得不在我的 Maven 存储库中删除我的项目的目录树。所以就我而言,我只需要删除目录~/.m2/repository/com/sjngm

然后我重新启动了 Eclipse,在启动过程中,它似乎从我们的内部存储库下载了该目录下现在缺少的依赖项。

于 2019-06-24T12:59:26.843 回答