Eclipse Oxygen - 因为构建路径不完整,项目未能构建

23

我刚安装了Eclipse Oxygen,并尝试将现有项目打开到工作台中,但出现以下错误:

由于其构建路径不完整,因此未构建该项目。找不到java.lang.Object的类文件。请修复构建路径,然后尝试构建此项目

我尝试右键单击该项目 - 进入属性 - Java构建路径 - 库 - 添加库 - JRE系统库并选择工作台默认JRE (jre1.8.0_60)。

然后我清理并重新构建项目,但会导致更多的错误出现,例如:

ActionBar cannot be resolved to a type
Activity cannot be resolved to a variable
AdapterView cannot be resolved to a type
ArrayAdapter cannot be resolved to a type

你能否改用Android Studio呢?因为Eclipse现在已经被弃用了。 - TheLittleNaruto
11个回答

18

以下是让错误消失的方法:

关闭Eclipse,在终端窗口中运行以下命令:

$ mvn clean eclipse:clean eclipse:eclipse

Eclipse Maven插件已经过时了...你可以使用它来清理一些由Eclipse生成的文件,但不要使用配置生成器,因为它会与m2e冲突。 - eduyayo
1
重启Eclipse对我有用... - Will
1
这对我解决VS Code的Java语言服务器问题非常有效。 - Haldun

16

你正在使用Maven吗?如果是的话,

  1. 在项目上右键单击,选择构建路径,然后转到配置构建路径
  2. 点击“库”选项卡。如果Maven依赖项不在列表中,则需要添加它。
  3. 关闭对话框。

要添加它:

在项目上右键单击,选择Maven → 禁用Maven Nature

在项目上右键单击,选择配置 → 转换成Maven项目。

然后清除一下

编辑1:

如果这不能解决问题,请右键单击您的项目并选择属性。选择Java Build Path → Library选项卡。查找JVM。如果没有,请单击添加Library并添加默认JVM。如果有VM,请单击编辑并选择默认JVM。希望这样能行。

编辑2:

您还可以尝试进入包含所有项目的文件夹,并删除Eclipse的 .metadata (请注意,之后您将不得不重新导入所有项目!您设置的所有环境设置也必须重新完成)。删除后,再次导入项目,希望这样就可以了。


1
不,我没有使用Maven。我已经尝试在我的问题中添加了JVM。但是这样做会导致更多错误。 - user123456789
你也可以尝试进入存放所有项目的文件夹,删除Eclipse的.metadata文件夹(请注意,之后您将不得不重新导入所有项目!同时,您设置的所有环境设置也必须重新设置)。删除后,再次导入项目,希望能够正常工作。 - Ash_s94
1
添加步骤如下:右键单击项目,选择 Maven → 禁用 Maven 自然度。右键单击项目,选择配置→ 转换为 Maven 项目。这些步骤解决了我的问题,但是它们实际上在做什么? - user1169587
编辑1:在Eclipse 2020-12中为我工作。显然,当更改构建路径属性时,JRE库并不总是被更新。我的JRE卡在了JAVA-7上(因为我的捆绑包需要为其工作),但某种方式编译器兼容级别没有更改库中选择的JRE。 - keesp
和 @keesp 一样,编辑1对我也起作用了。如果Maven Build Path不能解决问题,请尝试检查项目属性并更改Java Build Path -> Library,尝试使用与Maven Build Path相同的内容。 - Kangqiao Zhao

3
在Eclipse中,右键单击项目 -> Maven -> 更新项目。这将修复我项目中的错误。

1

我也在使用Eclipse Oxygen,从Mars迁移而来。我遇到了同样的错误。我删除了.metadata.recommenders文件夹,并从存档中添加了项目,问题得到了解决。我也使用Android Studio,但我更喜欢Eclipse。


现在不支持使用Eclipse进行Android开发。您无法使用Api 26+和支持库以及一些其他东西,如MVVM、Room等。您应该迁移到Android Studio。我曾经抵制过这个想法,但是如果没有新的库,工作就变得不可能了。您可以像在Eclipse中使用工作区一样,在AS中添加项目作为模块。我将10多个单独的项目放在一个项目中,使用模块,如果需要从另一个项目中获取一些片段,那么检查起来就非常容易。 - Thracian

0

我遇到了这个问题。我把C:\Users\Office 2\android-sdks\platforms\android-19\android.jar加入到Java Build Path的库中。然后项目又能够运行了。 这个问题是由于我的粗心造成的。昨晚我正在更新Android SDK,同时尝试运行项目,而SDK Manager正在解压缩系统映像。项目无法启动并出现了错误。

我尝试了其他人提供的所有方法,但都没有起作用。当我只看到Android方法和导入出现错误时,我猜想缺少的是Android库,而不是Java。但是当我阅读帖子时,我感到很困惑,浪费了一些时间走错了路。


0

我曾遇到同样的问题,并尝试了不同的解决方案,最终重新安装了JDK 11并重启了机器,随后问题得到了解决。


0

在之前正常工作的工作区中,我突然出现了这个问题。这个问题似乎表明项目配置已经损坏。

重新启动 Eclipse 并没有帮助解决问题,但是与 Maven 相关的答案一样,可以通过重新生成 Eclipse 项目配置来解决:

./gradle eclipse

或者

./gradlew eclipse

如果你使用包装器,这个问题对我来说已经解决了。


0
以下是我在系统中解决问题的步骤:
  • 重新启动eclipse
  • 右键单击pom.xml,选择maven clean
  • 再次右键单击pom.xml,选择maven install

在maven install完成后,我获得了构建成功的信息。


0
这个对我很有帮助
步骤:
1. 如何解决Eclipse中的Java构建路径问题 2. 右键单击项目 - 选择构建路径 - 点击配置构建路径 3. 点击库选项卡 4. 移除JRE(错误的JRE),我们需要JDK 5. 点击添加库 6. 选择JRE系统库 7. 点击已安装的JRE 8. 点击添加按钮:如果此窗口中没有可用的JDK,请选择JDK 9. 在系统中选择JDK目录 10. 选择JDK并应用关闭 11. 构建项目 12. 检查构建路径问题是否已解决
您可以在下面的链接中查看视频: https://www.youtube.com/watch?v=WHjfJnpwcTQ

0

当我将使用jdk 11(在docker中)的Spring Boot项目导入到Ubuntu上的Eclipse 2019(2021)时,遇到了类似的问题。但是,当我将其导入到Intellij IDEA Community或NetBeans IDE时,它们不会像在Eclipse中那样产生相同的导入后错误集合。Spring Boot是多模块Maven项目,两个子模块在适当的问题选项卡中显示了这样的2个“问题”:

The project was not built since its build path is incomplete. 
Cannot find the class file for java.lang.Object. Fix the build 
path then try building this project

前面提到的Maven模块中的两个类产生了下面2个错误:

The type java.lang.Object cannot be resolved. It is 
indirectly referenced from required .class files

将JDK 11添加到子模块构建路径中进行操作只会导致成千上万的问题。当我使用Eclipse-File-Maven-Update时,也会出现这种情况。此外,当我尝试编辑大多数现有类或添加新类时,都会出现红色下划线告诉我:

Implicit super constructor Object() is undefined for default 
constructor. Must define an explicit constructor

所以几乎没有机会在预构建阶段使用Eclipse, 因为docker-compose应该运行构建和运行。事实上,我注意到当项目还使用模块(在Java9中引入的module-info文件)时,会出现这样的问题。当我将项目导入jdk 8(甚至未安装在系统上),或者甚至在没有module-info文件的jdk11上导入时,在Eclipse中导入后一切都很好。另一个区别是,当我使用旧的没有模块的项目时,Build Path由jre环境8和maven依赖项组成,但是当使用"module-info"项目时,Build path包含-module path和-classpath。所以我甚至不知道在哪里添加jre 11,实际上添加并不能解决问题,只会产生更多错误。那么这个问题的解决方案是什么?在Eclipse中要进行哪些设置?


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