Это вызывается, когда в каком-либо определении класса произошло несовместимое изменение класса. С тех пор изменилось определение некоторого класса, от которого зависит исполняемый в данный момент метод. Обычно он генерируется, когда неконечное поле базового класса становится статическим или когда базовый класс превращается в интерфейс (и наоборот) и т. д. который изменяется после компиляции дочернего класса.
Пожалуйста, прочитайте больше здесь
http: //examples.javacodegeeks.com/java-basics/exceptions/java-lang-inсовместимыйclasschangeerror-как-разрешить-несовместимый-class-change-error/
http://howtodoinjava.com/2013/05/25/solved-java-lang-incompiledclasschangeerror-implementing-class/
Ваша недавно упакованная библиотека не имеет обратной бинарной совместимости (BC) со старой версией. По этой причине некоторые клиенты библиотек, которые не были перекомпилированы, могут генерировать исключение.
Это полный список изменений в API-интерфейсе библиотеки Java, которые могут привести к тому, что клиенты, созданные с использованием старой версии библиотеки, будут выдавать ошибку java.lang.IncompiledClassChangeError, если они будут работать на новой версии (т. е. нарушить BC):
Неконечное поле становится статическим, непостоянное поле становится нестатическим, класс становится интерфейсом, интерфейс становится классом, если вы добавляете новое поле в класс/интерфейс (или добавляете новый суперкласс/суперинтерфейс), то статическое поле от суперинтерфейса клиентского класса C может скрываться добавленное поле (с тем же именем), унаследованное от суперкласса C (очень редкий случай). Примечание. Существует множество других исключений, вызванных другими несовместимыми изменениями: NoSuchFieldError, NoSuchMethodError, IllegalAccessError, InstantiationError, VerifyError, NoClassDefFoundError и AbstractMethodError.
Лучшая статья о BC — «Развитие API-интерфейсов на основе Java 2: достижение двоичной совместимости API», написанная Джимом де Ривьером.
Также существует множество автоматических инструментов для обнаружения таких изменений:
japi-compliance-checker clirr japitools sigtest japi-checker Использование japi-compliance-checker для вашей библиотеки (*.jar):
japi-compliance-checker OLD.jar NEW.jar Использование инструмента clirr:
Java -jar clirr-core-0.6-uber.jar -o СТАРЫЙ.jar -n НОВЫЙ.jar
person
Pankaj Saboo
schedule
25.09.2015