During unit test I encounter a "java.lang.NoSuchMethodError: net.sourceforge.cobertura.coveragedata.ClassData.touchJump(IIZ)V" exception. I find there are 2 cobertura.jar in classpath. That jar in /usr/share/ant/lib is v1.9.2, while in ./lib/ is 1.8.1.
When I delete the jar in ./lib, there is a "java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/HasBeenInstrumented" exception.
Then I copy cobertura.jar from /usr/share/ant/lib to ./lib, everything goes fine.
Solution of "local class incompatible"
Problem: local class incompatible: stream classdesc serialVersionUID = 2, local class serialVersionUID = 2152686494816595840
Solution: use unzip -q -c cobertura.jar META-INF/MANIFEST.MF
, I found the version of this jar is 1.8, while that in other projects is 1.9.1. So I copy the jar of version 1.9.1 to replace that of version 1.8, everything goes fine.