Ошибка regCount при установке apk с сажей
Я использую apk-файл, используя Soot. Когда я добавляю следующий оператор перед запуском команды soot.Main (даже не создавая моего тела преобразователя), я получаю ошибку regCount. (Одна и та же ошибка появляется в разных методах для разных apk-файлов.)
Scene.v().addBasicClass("MyScheduler");
// PackManager.v().getPack("jtp").add(new Transform("jtp.myInstrumenter", new MyBodyTransformer()));
soot.Main.main(args);
Я получаю ошибку:
Transforming android.support.v4.view.ViewConfigurationCompat$FroyoViewConfigurationVersionImpl...
Exception in thread "main" java.lang.RuntimeException: regCount does not match the number of arguments of the method
at org.jf.dexlib.Code.Format.Instruction35c.checkItem(Instruction35c.java:160)
at org.jf.dexlib.Code.Format.Instruction35c.<init>(Instruction35c.java:69)
at soot.toDex.instructions.Insn35c.getRealInsn0(Insn35c.java:96)
Заранее спасибо.
1 ответ
Решение
Моя проблема была вызвана кодом класса, который я пытался добавить. Это действительно тонкий момент: я использую ArrayList из "Long", но некоторые из моих методов - добавление / удаление переменных типа "long". Хотя Java выполняет бокс, и у меня не было проблем с выполнением кода Java, такое несоответствие проблематично в промежуточных языках.