Proguard - Can't find common super class / java.lang.VerifyError
You're specifying the option -dontwarn
to suppress warnings about unresolved references. This can lead to problems while processing the code. ProGuard needs those references, e.g. in the preverification step. The error indeed suggests that the input doesn't contain all necessary dependencies: some common superclass or interface of ImmutableList
and UnmodifiableIterator
is missing. For a desktop application, you should check that you're specifying a Java runtime jar with all the necessary classes:
-libraryjars <java.home>/lib/rt.jar
See the ProGuard manual > Troubleshooting > Warning: can't find superclass or interface
Initialization, verification, and validation are part of the building project. I believe flag -allowaccessmodification
is to allow modification when building the project (i.e. your classes are modified from the original structure). When original class structure gets modified then their stack frames are disturbed. This leads to verification failure. If you want to ignore the verify error then as mentioned you need to use the flag that suspends verification.