zhangwenan / smali

Automatically exported from code.google.com/p/smali
0 stars 0 forks source link

Error deodexing #8

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Exactly following DeodexInstructions
2. Tried deodexing Weather.odex from HTC Hero
3. out folder created with some files but I get that error:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: java.lang.RuntimeException: class
Lcom/htc/elroy/Weather/MyLocation; could not be found for common superclass
lookup
    at org.jf.dexlib.Util.Deodexerant.sendCommand(Deodexerant.java:210)
    at org.jf.dexlib.Util.Deodexerant.lookupCommonSuperclass(Deodexerant.java:184)
    at
org.jf.dexlib.Util.DeodexUtil$insn.findCommonSuperclass(DeodexUtil.java:1259)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1430)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil$insn.propogateRegisters(DeodexUtil.java:1484)
    at org.jf.dexlib.Util.DeodexUtil.makeInsnList(DeodexUtil.java:190)
    at org.jf.dexlib.Util.DeodexUtil.deodexerizeCode(DeodexUtil.java:196)
    at
org.jf.baksmali.Adaptors.MethodDefinition$MethodItemList.generateMethodItemList(
MethodDefinition.java:183)
    at
org.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefinition.java:1
44)
    at
org.jf.baksmali.Adaptors.MethodDefinition.makeTemplate(MethodDefinition.java:61)
    at
org.jf.baksmali.Adaptors.ClassDefinition.getVirtualMethods(ClassDefinition.java:
221)
    at
org.jf.baksmali.Adaptors.ClassDefinition.makeTemplate(ClassDefinition.java:67)
    at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:112)
    at org.jf.baksmali.main.main(main.java:183)
Caused by: java.lang.RuntimeException: class
Lcom/htc/elroy/Weather/MyLocation; could not be found for common superclass
lookup
    at org.jf.dexlib.Util.Deodexerant.sendCommand(Deodexerant.java:206)
    ... 73 more

Original issue reported on code.google.com by gecka.company on 21 Oct 2009 at 3:12

GoogleCodeExporter commented 9 years ago
Are you running deodexerant on the hero itself? Also, is there any logcat output
while its running?

Original comment by JesusFre...@gmail.com on 30 Oct 2009 at 4:42

GoogleCodeExporter commented 9 years ago
In the meantime, I had helped someone else with a similar error. This is almost
certainly caused by a jar file that the Weather app depends on, not being in the
BOOTCLASSPATH environment variable. You need to find what jar file contains the 
class
"Lcom/htc/elroy/Weather/MyLocation;", and add that to the BOOTCLASSPATH before
running deodexerant.

i.e.:

adb shell
export BOOTCLASSPATH=$BOOTCLASSPATH=/system/framework/somejarfile.jar
deodexerant /system/app/Weather.odex 1234

Leave that terminal session up and running, and open a new terminal window, and
continue with adb forward and baksmali.

Original comment by JesusFre...@gmail.com on 8 Nov 2009 at 7:38

GoogleCodeExporter commented 9 years ago
JF, would it be possible to add this information from your most recent comment 
to the
DeodexInstructions article in your wiki? I had to do some large amount of 
searching
to find this information! :-)

Original comment by Speeddy...@gmail.com on 16 Jan 2010 at 6:16

GoogleCodeExporter commented 9 years ago
Good idea. done! :)

Original comment by JesusFre...@gmail.com on 16 Jan 2010 at 7:20