2012-12-28 38 views
0

Possible Duplicate:
What causes java.lang.IncompatibleClassChangeError?java.lang.incompatible類更改錯誤

我使用的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) 

,我認爲它不是一個程序錯誤。請幫幫我。

+6

Eclipse 1.6?你是一名考古學家? – PhiLho

+2

請使用此鏈接 http://stackoverflow.com/questions/1980452/what-c​​auses-java-lang-incompatibleclasschangeerror –

回答

-2

這意味着您已經對庫進行了一些不兼容的二進制更改,而無需重新編譯客戶端代碼。 Java語言規範S13詳細描述了所有這些變化,最顯着的是,將非靜態非私有字段/方法更改爲靜態或反之亦然。

針對新庫重新編譯客戶端代碼,您應該很好。

更新:如果您發佈公共庫,應儘可能避免進行不兼容的二進制更改以保留所謂的「二進制向後兼容性」。理想情況下更新依賴關係JAR不應該破壞應用程序或構建。

+0

其實我所做的是1,引進在我的Eclipse客戶端代碼,2.building的路徑,3.build.xml - >運行 - > 2 ant build - >點擊「乾淨」複選框 - >運行 - >再次點擊複選框「jar(默認)」和「編譯」 - >運行..這是正確的,或者可以幫助我如何在eclipse中重新編譯? – user1934458