Eclipse / Android: "在项目上运行预编译器'Android Pre Compiler'时出现错误..."

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

我在Mac上运行Eclipse,使用Android项目构建目标为4.0.3(API级别15),已安装以下版本:

  • Eclipse - 3.7.2
  • Android开发工具 - 21.0.1
  • Android SDK - 高达17

我已经尝试了一些方法,例如启动一个全新的工作空间,安装'Subversive 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=Apple Inc.
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

另一个编辑

好的,进一步搜索带我来到这个页面,该页面表明此问题与项目中没有扩展名的文件有关-但是我不知道是哪个文件,而且我无论如何都找不到这样的文件!

如果有人能解释这个错误的含义以及如何获取更多有关底层错误的调试信息,我会非常感激。


1
你的项目构建目标是什么? - Padma Kumar
Android 4.0.3(API级别15) - Mick Byrne
2
http://code.google.com/p/android/issues/detail?id=42051,https://dev59.com/AWkw5IYBdhLWcg3w1eAm - Padma Kumar
是的,我尝试了在这个问题中提出的所有不同解决方案,但它们都没有解决我的问题。我提出了这个单独的问题,因为我只有“Android预编译器”问题。我甚至不理解这个“问题”意味着什么。 - Mick Byrne
11个回答

107

对于不想安装ADT预览版的用户,可以使用此处描述的解决方法

  1. 在Eclipse中打开项目属性,然后选择资源 -> 资源过滤器。
  2. 点击“添加…”按钮->选择“排除所有”,“文件和文件夹”,“所有子项”。 在文本输入框中输入“.svn”(不带引号)。
  3. 重启Eclipse。

我用同样的方法解决了.git文件夹的问题,很顺利。


请记住,在此更改后,您需要关闭并重新打开项目。 - Tommie
请注意,ADT 21.1已经发布,这个问题已经得到解决,所以您可以直接更新您的工具。 - Vadim Kotov
请帮我解决这个错误。我看到它对你们所有人都起作用了,但我仍然得到相同的错误。 - user1106888
@user1106888 也许你有另一个文件夹名字里带点的文件夹。或者一些没有扩展名的文件,它们也可能会产生这个错误。 - Vadim Kotov
类似/相关问题:https://dev59.com/7WYq5IYBdhLWcg3wzDlI - Mr-IDE

84

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

ADT工具的21.0.1版本存在一个bug,如果您的项目中有任何没有扩展名的文件,则会阻止项目构建。对于使用没有扩展名文件的版本控制软件(如我)的用户来说,这是一个特别的问题。

一个推荐的解决方案是安装这些“subversive”Eclipse插件(Help> Install new Software> Work with your Eclipse version site> Expand 'Collaboration'> Choose 'Subversive SVN JDT Ignore Extensions' and 'Subversive SVN Team Provider'),但这对我没有用(我在Indigo上,也许在Juno上它可以用)。

解决方案是安装来自Google的ADT工具和SDK管理器的21.1 预览版本。您可以在此处找到清晰的说明并加入开发者的愤怒抗议行列found here,您还可以阅读所有相关背景信息,在此处提出您的意见


4
确保更新SDK和ADT,这将解决问题。 - Michael Marsella
3
如果安装了Subversive插件后问题仍然存在,请尝试以下步骤:从工作区中删除项目,删除“bin”和“gen”文件夹,并确保它们在svn中被排除,然后将项目重新添加到工作区(File > New > Project, Android Project from Existing Code)。如果现在的命名不正确,请右键单击它> Refactor > Rename。这个方法修复了我的问题。 - Glenn Schmidt
3
21.1 版本已经发布,如果您不喜欢预览版,可以升级到此版本。 - Xavier Ducrohet
1
mar13不再是预览版了。只需转到SDK管理器并升级即可。 - tony gil
1
问题已经通过Vadim Kotov的答案得到解决,这将是最好和简单的答案。 - Selva
显示剩余4条评论

15

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


9
我也遇到了同样的问题,后来我意识到我关闭了与正在构建的项目相关联的另一个项目。一旦我打开它,所有东西都消失了。

谢谢,完全奏效了。我使用的项目导入库中充满了错误,所以我关闭了它(也因为当时我没有使用它的功能)。因此,既然我不需要它,我就从我的库中断开了它(通过属性-> Android->选择库,然后单击删除),原始项目的错误消失了。耶! - Azurespot

2
也许您已经关闭了'appcompact_v7'库来创建新文件。通过重新打开它,我的问题得到了解决。

1
如果您不小心关闭了在运行项目时必需的库项目,只需在Eclipse中打开它们即可。这个错误应该会消失。

1

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


1
我遇到了这个错误,并删除了所有的 .svn 文件,但我的项目在处理到 55% 时无法工作。
后来我发现我的项目中有一个空的 res 目录,我不知道它是怎么来的,但当我删除了这个空的 res 目录后,我的项目就正常工作了。
所以,你应该检查你项目中的所有文件。

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

0
另一个案例:我关闭了当前项目(带有构建错误消息),丢弃了正在使用的SVN存储库,重新编译: 构建错误 我添加存储库位置: 构建成功!

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