我在Eclipse中出现了一个错误。这个错误信息是什么意思:

无法解析iglu.ir.TermVector类型。它是从必需的.class文件中间接引用的


当前回答

当我使用一个新的eclipse版本,并试图使用以前的工作空间,我使用旧的eclipse版本,这个错误发生。

下面是我解决这个问题的方法:

右键单击我的项目在包资源管理器->属性-> Java构建路径-> Libraries ->我看到一个错误(交叉签署)在JRE系统库。因为无法找到路径。->双击JRE System Library ->选择“Workspace Default JRE”选项->完成->确定。->它在工作

FYI.

其他回答

在我的例子中,问题是“javax.ws.rs”。在Tomcat中启动web应用程序时,执行webapplicationexception无法解决。

添加以下库(Maven)的解决方案:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
</dependency>

我在Eclipse 4.4.2中遇到过一个有趣的案例。我的项目(P1)引用了一个外部类(项目P2),它有两个同名但参数类型不同的方法:

public static void setItem(Integer id) …
public static void setItem(Item item) …

类型Item包含在第三个项目P3中,我不想在这里看到它。P1只调用了第一个方法:

ExternalClass.setItem(Integer.valueOf(12345));

因此,使用Item类的第二个方法没有被使用,而且P3确实不在编译类路径中——如果没有被使用,为什么要使用它呢?

Eclipse告诉我

The type ...Item cannot be resolved.
It is indirectly referenced from required .class files

从命令行编译不会产生任何此类问题。更改第二个方法的名称(此处未使用!)也使这个问题在Eclipse中消失了。

快速而简单地我用这种方式修复了它(我使用ADT版本:v21.0.0-531062在Windows XP家庭版)

Opened manifest file. Changed the Existing project minSdkVersion to the same value as maxSdkVersion ( advise: it may be good to create a New project and see what is it's maxSdkVersion ) Save manifest file. Right Click the project and select Build Project. From top menu: Project - Clean.. - check Only the relevant project, below I checked Start a build immediately and Build only the selected projects and OK. open the java file - NO red errors anymore ! Back to step 1 above and changing Back minSdkVersion to it's Original value (to supoprt as many Android version as possible).

这很有效,但每隔几天问题就会复发。我做同样的事情,它解决了问题,让我发展。

对我来说,上面的解决方案都没用。 对我来说有用的是选择类中的所有代码,然后将其转换为注释, 保存,然后将其转换回正常文本,错误就消失了。

对我来说,当我使用已经使用了很长时间的旧jar集将jdk升级到1.8.0_60时,就会发生这种情况。如果我回到jdk1.7.0_25,所有这些问题都消失了。这似乎是JRE和库之间的兼容性问题。