Need help in preverification/ obfuscation
I have a midlet project dev under Eclipse that can be packaged and runs fine unobfuscated. It uses 3rd party classes.
But when I run the application after obfuscated it (in Eclipse) i get:
Running with storage root DefaultColorPhone
Method............: f29214
'com/cassis/ota/client/midlet/ServiceActivationMidlet.startApp (virtual)'
Stack Chunk.......: eb2cd4
Frame Pointer.....: eb2d7c
Current IP........: f29196 = f29184 + offset 18
Previous Frame....: eb2d5c
Previous IP.......: 101f3702 (offset 7)
Frame size........: 2 (1 arguments, 1 local variables)
Argument[0].......: eb3198
Local[1]..........: 101d43aa
Operand[1]........: eb3198
Method............: 1016f93c'javax/microedition/midlet/MIDletProxy.startApp
(virtual)'
Stack Chunk.......: eb2cd4
Frame Pointer.....: eb2d5c
Current IP........: 101f3702 = 101f36fb + offset 7
Previous Frame....: eb2d40
Previous IP.......: 101d43ae (offset 270)
Frame size........: 1 (1 arguments, 0 local variables)
Argument[0].......: eb3164
Method............: 1015a558'com/sun/midp/midlet/Scheduler.schedule (virtual)'
Stack Chunk.......: eb2cd4
Frame Pointer.....: eb2d40
Current IP........: 101d43ae = 101d42a0 + offset 270
Previous Frame....: eb2d0c
Previous IP.......: 101dec85 (offset 28)
Frame size........: 7 (2 arguments, 5 local variables)
Argument[0].......: eb26e4
Argument[1].......: eb1e00
Local[2]..........: eb3164
Local[3]..........: 2
Local[4]..........: eb26d8
Local[5]..........: f28ff0
Local[6]..........: 1015a478
Method............: 1016224c'com/sun/midp/main/Main.runLocalClass (static)'
Stack Chunk.......: eb2cd4
Frame Pointer.....: eb2d0c
Current IP........: 101dec85 = 101dec69 + offset 28
Previous Frame....: eb2ce8
Previous IP.......: 101de6fc (offset 116)
Frame size........: 3 (1 arguments, 2 local variables)
Argument[0].......: eb2b8c
Local[1]..........: eb1e00
Local[2]..........: f28fb8
Method............: 101621ac'com/sun/midp/main/Main.main (static)'
Stack Chunk.......: eb2cd4
Frame Pointer.....: eb2ce8
Current IP........: 101de6fc = 101de688 + offset 116
Previous Frame....: 0
Previous IP.......: 1
Frame size........: 3 (1 arguments, 2 local variables)
Argument[0].......: eb2fc0
Local[1]..........: eb2b8c
Local[2]..........: eb24f4
VM status:
Instruction pointer.: f29196 (offset within invoking method: 18)
Next instruction....: 0xbb
Frame pointer.......: eb2d7c
Local pointer.......: eb2d74
Stack size..........: 128; sp: eb2d94; ranges: eb2cdc-eb2edc;
Contents of the current stack frame:
eb2d74: eb3198 (lp)
eb2d78: 101d43aa
eb2d7c: eb2d5c (fp)
eb2d80: 101f3702
eb2d84: eb2d70
eb2d88: f29214
eb2d8c: eb2cd4
eb2d90: 0 (end of frame)
eb2d94: eb3198 (sp)
Execution stack contains 188 items:
eb2fc0
eb2b8c
eb24f4
0
1
f28fa8
101621ac
eb2cd4
0
eb2b8c
eb1e00
f28fb8
eb2ce8
101de6fc
eb2cfc
1016224c
eb2cd4
0
eb26e4
eb1e00
eb3164
2
eb26d8
f28ff0
1015a478
eb2d0c
101dec85
eb2d20
1015a558
eb2cd4
0
eb3164
eb2d40
101d43ae
eb2d54
1016f93c
eb2cd4
0
eb3198
101d43aa
eb2d5c
101f3702
eb2d70
f29214
eb2cd4
0
eb3198
Execution completed.
809300 bytecodes executed
0 thread switches
776 classes in the system (including system classes)
5173 dynamic objects allocated (157712 bytes)
ALERT: java/lang/ClassFormatError: Bad stack map.
14 garbage collections (135948 bytes collected)
Execution completed.
809300 bytecodes executed
0 thread switches
776 classes in the system (including system classes)
5173 dynamic objects allocated (157712 bytes)
14 garbage collections (135948 bytes collected)
When preverify the jar with WTK command line I get:
Error preverifyingclass
com.sun.activation.registries.MailcapFile
VERIFIER ERROR
com/sun/activation/registries/MailcapFile.<init><Ljava/lang/String;>V:
Cannot findclass java/io/FileReader
I am totally lost... can anyone help? Anyway that I can keep my working un-preverified jar, obfuscate it & still works? Or any suggestion is welcome.
Would be even better if someone is willing to take my jar & try to preverify/obfuscate it & tell me what's wrong.
Thanks.
Yih

