We are using latest JDK 7 (u45) and ProGuard Version 4.10
Lately starting our distribution fails, after obfuscating it, with the following error:
Excepti
In case you guys didn't find a solution yet, you may try to check if you have -microedition
option. Here's why it related to StackMap
. Removing this option fixed this issue for me.
I assume you are not specifying -dontpreverify? That option will almost certainly lead to these errors, since it will stop ProGuard from updating the StackMapTable attribute. The attribute was optional in Java 6, but it is required in Java 7.
You could still try a beta version of ProGuard 4.11, but it is unlikely that it makes a difference here. If you mail me the processed class file, I'll look into it.
(I am the developer of ProGuard)
I also faced the same challenge when migrating my application from 1.6 to 1.7. After huge struggle, we found a fix to address the issue.
Approach 1: Either you can use -XX:-UseSplitVerifier argument will resolve this issue and you don't need to worry about to upgrade the library files.
Approach 2: I have followed the below steps to overcome the issue. Step 1: Identify and keep a list of external libraries consumed by your application. Step 2: Once you identify the list, keep removing one by one external library files and plug in upgraded version library files which will help you to isolate the library which might causing the issue. In my case: j2ee.jar and openjpa-1.2.2 jar files created an issue and then I have upgraded these libraries which had resolved the migration issues.
Hence, It is bit of slow and painful process to figure out which library causing the issue and arrest it.
I hope, this information might be useful because it is based out of my real time experience.