【问题标题】:java.lang.incompatible class change error [duplicate]java.lang.incompatible 类更改错误 [重复]
【发布时间】:2012-12-13 17:28:50
【问题描述】:

可能重复:
What causes java.lang.IncompatibleClassChangeError?

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

我在使用 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 eclipse


【解决方案1】:

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

针对新库重新编译客户端代码,您应该一切顺利。

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

【讨论】:

  • 实际上我所做的是 1.在我的 Eclipse 中导入客户端代码,2.构建路径,3.build.xml -> 运行方式 -> 2 ant build -> 单击“清理”复选框->运行->再次单击复选框“jar(默认)”和“编译”->运行..这是对的还是你能帮我如何在eclipse中重新编译?
猜你喜欢
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
相关资源
最近更新 更多