java.lang.Compatible类更改错误

java.lang.Compatible类更改错误,java,eclipse,Java,Eclipse,可能重复: 我正在使用Eclipse1.6进行车辆跟踪系统项目。我正在执行客户端代码,它工作正常。但是如果我在eclipse中导入相同的代码,jar文件就会成功创建。当我运行该代码时,我得到一个不兼容ClassChangeError 当我使用if条件检查某个位置的有效性时,会出现此错误 错误: java.lang.IncompatibleClassChangeError: com/nxp/telematics/location/Location.isValid()Z at com.nxp.a

可能重复:

我正在使用Eclipse1.6进行车辆跟踪系统项目。我正在执行客户端代码,它工作正常。但是如果我在eclipse中导入相同的代码,jar文件就会成功创建。当我运行该代码时,我得到一个
不兼容ClassChangeError

当我使用if条件检查某个位置的有效性时,会出现此错误

错误:

java.lang.IncompatibleClassChangeError: com/nxp/telematics/location/Location.isValid()Z 
at com.nxp.atop.LocationListenerExample.locationUpdated(LocationListenerExample.java:28) 
at com.nxp.telematics.location.LocationProvider$1.locationUpdated(LocationProvider.java:101) 
at com.nxp.telematics.location.AbstractLocationFilter.locationUpdated(AbstractLocationFilter.java:86) 
at com.nxp.telematics.location.TimingFilter.deliver(TimingFilter.java:271) 
at com.nxp.telematics.location.TimingFilter.access$800(TimingFilter.java:66) 
at com.nxp.telematics.location.TimingFilter$DeliveryAttemptTask.run(TimingFilter.java:136) 
at java.util.Timer$TimerImpl.run(Timer.java:207) 

我认为这不是程序错误。请帮帮我。

这意味着您在没有重新编译客户端代码的情况下对库进行了一些不兼容的二进制更改。Java语言规范S13详细说明了所有这些更改,最明显的是,将非静态非私有字段/方法更改为静态字段/方法,反之亦然

根据新库重新编译客户机代码,您应该可以开始了


更新:如果发布公共库,应尽可能避免进行不兼容的二进制更改,以保持所谓的“二进制向后兼容性”。理想情况下,仅更新依赖项jar不应破坏应用程序或构建。

Eclipse1.6?你是考古学家吗?请使用这个链接,实际上我所做的是1.在我的eclipse中导入客户端代码,2.构建路径,3.build.xml->run as->2 ant build->单击“clean”复选框->运行->再次单击复选框“jar(默认)”和“compile”->运行。。这是对的还是你能帮我在eclipse中重新编译?