What causes java.lang.IncompatibleClassChangeError?

This means that you have made some incompatible binary changes to the library without recompiling the client code. Java Language Specification §13 details all such changes, most prominently, changing non-static non-private fields/methods to be static or vice versa. Recompile the client code against the new library, and you should be good to go. UPDATE: If you publish a public library, … Read more