Это брошено, когда изменение несовместимого класса произошло с некоторым определением класса. С тех пор изменилось определение некоторого класса, от которого зависит текущий исполняемый метод. Обычно он генерируется, когда нечетное поле базового класса становится статичным или когда базовый класс переходит в интерфейс (и наоборот) и т. Д. IncompatibleClassChangeError расширяет LinkageError, что связано с проблемами, возникающими из базы класс, который изменяется после компиляции дочернего класса.
Пожалуйста, читайте здесь
http://examples.javacodegeeks.com/java-basics/exceptions/java-lang-incompatibleclasschangeerror-how-to-resolve-incompatible-class-change-error/
http://howtodoinjava.com/2013/05/25/solved-java-lang-incompatibleclasschangeerror-implementing-class/
Вашей недавно упакованная библиотека не имеет обратный двоичную совместимость (BC) со старой версией. По этой причине некоторые из клиентов библиотеки, которые не перекомпилированы, могут выдать исключение.
Это полный список изменений в библиотеке Java API, которые могут привести к клиентам, построенные со старой версией библиотеки бросить java.lang.IncompatibleClassChangeError, если они работают на новой (т.е. нарушения до н.э.):
Не конечное поле становится статическим, Непостоянное поле становится нестатическим, Класс становится интерфейсом, Интерфейс становится классом, , если вы добавите новое поле в класс/интерфейс (или добавьте новый суперкласс/супер-интерфейс), тогда статическое поле из суперинтерфейса клиентского класса C может скрыть добавленное поле (с тем же именем), унаследованное от суперкласса C (очень редкий случай). Примечание: Есть много других исключений, вызванных другими несовместимыми изменениями: NoSuchFieldError, NoSuchMethodError, IllegalAccessError, InstantiationError, VerifyError, NoClassDefFoundError и AbstractMethodError.
Лучшая статья о BC - «Разработка API-интерфейсов на основе Java 2: Достижение совместимости двоичных файлов API», написанной Джим де Ривьер.
Есть также много автоматических инструментов для обнаружения таких изменений:
Japi-податливость корректор clirr japitools sigtest Japi-шашка Использование Japi-соответствия-проверки для Вашей библиотеки (*. банку):
Japi-соответствия корректор OLD.jar NEW.jar Использование clirr инструмента:
Java -jar clirr-ядро-0,6-uber.jar -o OLD.jar -n NEW.jar
Перекомпилируйте все. – EJP
@EJP: сделал это, но все равно не повезло. –