apktool 回编译时出现如下错误:
D:\qytx_pack\FusionPack>apktool b -f game -o 1.apk
I: Using Apktool 2.3.4
I: Smaling smali folder into classes.dex...
Exception in thread "main" org.jf.util.ExceptionWithContext: Exception occurred while writing code_item for method Landroid/support/v4/util/LongSparseArray;->clone()Landroid/support/v4/util/LongSparseArray;
at org.jf.dexlib2.writer.DexWriter.writeDebugAndCodeItems(DexWriter.java:825)
at org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:268)
at org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:246)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:61)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:36)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:419)
at brut.androlib.Androlib.buildSources(Androlib.java:350)
at brut.androlib.Androlib.build(Androlib.java:302)
at brut.androlib.Androlib.build(Androlib.java:269)
at brut.apktool.Main.cmdBuild(Main.java:238)
at brut.apktool.Main.main(Main.java:76)
Caused by: org.jf.util.ExceptionWithContext: Error while writing instruction at code offset 0x13
at org.jf.dexlib2.writer.DexWriter.writeCodeItem(DexWriter.java:1098)
at org.jf.dexlib2.writer.DexWriter.writeDebugAndCodeItems(DexWriter.java:821)
... 10 more
Caused by: org.jf.util.ExceptionWithContext: Unsigned short value out of range: 65559
at org.jf.dexlib2.writer.DexDataWriter.writeUshort(DexDataWriter.java:116)
at org.jf.dexlib2.writer.InstructionWriter.write(InstructionWriter.java:348)
at org.jf.dexlib2.writer.DexWriter.writeCodeItem(DexWriter.java:1058)
... 11 more
Unsigned short value out of range: 65559: 方法数超过限制,解决方案:dex分包
apktool反编译之后,代码格式为smali,将超出的smali文件,移到smali_classes2,smali_classes3…等等,目前最多支持5个。