97

尝试在一个我几个月没有工作过的 Android 项目上做一些工作,但每次我尝试构建项目时,Eclipse 都会弹出一个对话框说:

'Building workspace' has encountered a problem

Errors occurred during the build.
Errors running builder 'Android Pre Compiler' on project 'XXX'
java.lang.NullPointerException

我在带有 Android 项目构建目标 4.0.3(API 级别 15)的 Mac 上运行 Eclipse,并且我安装了以下版本的东西

  • 日食 - 3.7.2
  • Android 开发工具 - 21.0.1
  • Android SDK - 最多 17 个

我已经尝试了一些事情,比如开始一个全新的工作区,安装这个“颠覆 SVN JDT Ignore Extensions”,升级所有东西,确保我的源文件夹(或其他任何地方)中没有任何没有扩展名的文件,确保我的 Java 编译器是 1.6,然后将其关闭再打开。

编辑

这是 Eclipse 错误日志中针对此问题的堆栈跟踪:

java.lang.NullPointerException
at com.android.ide.eclipse.adt.internal.build.builders.PreCompilerBuilder.build(PreCompilerBuilder.java:673)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513)
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:432)
at org.eclipse.ui.actions.BuildAction$1.runInWorkspace(BuildAction.java:305)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

和会话数据:

eclipse.buildId=M20120208-0800
java.version=1.6.0_37
java.vendor=苹果公司
BootLoader 常量:OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
框架参数:-keyring /Users/onemick/.eclipse_keyring -showlocation
命令行参数: -os macosx -ws cocoa -arch x86_64 -data /Projects/_EclipseWorkspace -keyring /Users/onemick/.eclipse_keyring -showlocation

另一个编辑

好的,所以更多的搜索将我带到了这个页面,这表明这个问题肯定与我的项目中存在没有扩展名的文件有关 - 但是我不知道哪个文件和我一生都找不到任何在那个项目中!

如果有人能解释这个错误的含义以及我如何获得有关潜在错误的更多调试信息,我什至会很高兴。

4

11 回答 11

107

对于那些不想安装 ADT 预览版的人,这里描述了一种解决方法

  1. 在 Eclipse 中打开项目的属性,然后打开 Resources -> Resource filters。
  2. 单击“添加...”按钮 -> 选中“全部排除”、“文件和文件夹”、“所有子项”。在文本输入框中输入“.svn”(不带引号)。
  3. 重新启动 Eclipse。

我对.git文件夹也有同样的问题,它就像一个魅力。

于 2013-01-31T04:52:51.307 回答
84

我总是讨厌回答自己的问题,但这是一个真正的解决方案。

ADT 工具的 21.0.1 版本有一个错误,如果您有任何没有扩展名的文件,则该错误会阻止项目构建。对于使用带有无扩展名文件的 subversion 的用户(如我)来说,这是一个特殊的问题。

一种推荐的解决方案是安装这些“颠覆性”Eclipse 插件(帮助 > 安装新软件 > 使用您的 Eclipse 版本站点 > 展开“协作”> 选择“颠覆性 SVN JDT 忽略扩展”和“颠覆性 SVN 团队提供商”),但这并没有不适合我(我在 Indigo 上,也许在 Juno 上可以)。

解决方案是安装 Google 提供的 ADT 工具和 SDK 管理器的 21.1预览版。可以在此处找到清晰的说明,您可以阅读所有背景信息,在此处为愤怒的开发人员群发声。

于 2013-01-22T11:23:12.503 回答
15

我刚刚重新启动了 Eclipse,问题就解决了。

于 2013-10-20T08:44:46.123 回答
9

我也遇到了同样的问题,我意识到我已经关闭了另一个与我正在构建的项目相关的项目。一旦我打开它,一切都消失了。

于 2014-05-21T07:29:54.563 回答
2

可能是您关闭了“appcompact_v7”库来创建新文件。这通过打开它解决了我的问题

于 2014-09-27T05:13:11.670 回答
1

我遇到这个错误,并删除所有 .svn 文件,我的项目无法工作,当处理 55%

我发现这是我项目中的一个空 res 目录,我不知道它是如何运行的,但是当删除空 res 目录时,我的项目工作了,

所以,你应该检查你项目中的所有文件。

于 2013-04-01T13:04:34.833 回答
1

我也遇到了同样的问题,浪费了很多时间来解决这个问题,上面给出的解决方案也对我不起作用。我通过转到 Eclipse -> 帮助 -> 检查更新,然后在更新完成后重新启动 Eclipse 解决了这个问题。

于 2014-01-09T14:43:21.230 回答
1

如果您不小心关闭了运行项目所必需的库项目,那么只需在 Eclipse 中打开它们。这个错误必须消失。

于 2014-06-24T08:39:36.123 回答
0

为了解决这个问题,我需要以管理员身份运行 eclipse

于 2014-11-21T19:47:49.003 回答
0

另一种情况:我关闭了当前项目(带有构建错误消息),丢弃了正在使用的SVN存储库,重新编译:

构建错误

我添加存储库位置:

建设好!

于 2013-02-07T11:49:37.673 回答
-1

我最近遇到了这个问题,上面给出的解决方案对我不起作用。我没有任何没有扩展名的文件。碰巧的是,在从现有代码添加新项目后,出现了一个设置错误,似乎弄乱了 eclipse 的状态。之后,我尝试清理或构建的工作区中的任何项目都会出现带有 java.lang.NullPointerException 的 Android Pre-Compiler 错误。

我发现 /res 目录中的 main.xml 文件由于某种原因找不到,即使该文件在那里很多。解决方案是在 Eclipse Java 编辑面板中关闭所有打开的文件透视图,关闭所有项目,然后打开项目并打开主 xml 文件。在我这样做之后,预编译器问题就消失了。

于 2013-07-30T19:17:44.883 回答