Какие причины java.lang. IncompatibleClassChangeError?

Вы тоже пытались установить поля на 0?

<style>
  .text {
    border: 2px solid red;
    font-size: 50px;
    margin: 0px;
    padding: 0px;
  }
</style>
211
задан sepp2k 8 March 2019 в 10:40
поделиться

2 ответа

Это означает, что вы внесли в библиотеку несовместимые двоичные изменения без перекомпиляции клиентского кода. Спецификация языка Java §13 подробно описывает все подобные изменения, наиболее заметным из которых является изменение нестатических не-приватных полей/методов на статические или наоборот.

Перекомпилируйте клиентский код против новой библиотеки, и вы должны быть готовы к работе.

UPDATE: Если вы публикуете публикуемую библиотеку, вы должны избегать внесения несовместимых двоичных изменений, насколько это возможно, чтобы сохранить так называемую "двоичную обратную совместимость". Одно только обновление банок зависимостей в идеале не должно нарушать работу приложения или сборки. Если вам всё-таки придётся нарушить двоичную обратную совместимость, рекомендуется увеличить основной номер версии (например, с 1.x.y до 2.0.0) перед выпуском изменения.

.
166
ответ дан 23 November 2019 в 04:33
поделиться

В моем случае ошибка появилась, когда я добавил библиотеку com.nimbusds в свое приложение, развернутое на Websphere 8.5.
Произошло следующее исключение:

Причина: java.lang.IncompatibleClassChangeError: org.objectweb.asm.AnnotationVisitor

Решением было исключить асм jar из библиотеки :

<dependency>
    <groupId>com.nimbusds</groupId>
    <artifactId>nimbus-jose-jwt</artifactId>
    <version>5.1</version>
    <exclusions>
        <exclusion>
            <artifactId>asm</artifactId>
            <groupId>org.ow2.asm</groupId>
        </exclusion>
    </exclusions>
</dependency>
1
ответ дан 23 November 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: