2014-06-18 1 views
0

J'instrument un fichier apk utilisant Soot. Lorsque j'ajoute l'instruction suivante avant d'exécuter soot.Main (sans même créer mon transformateur body), j'obtiens une erreur regCount. (. La même erreur apparaît dans différentes méthodes pour différents fichiers APK)erreur regCount lors de l'instrumentation apk avec de la suie

Scene.v().addBasicClass("MyScheduler"); 
    // PackManager.v().getPack("jtp").add(new Transform("jtp.myInstrumenter", new MyBodyTransformer())); 
    soot.Main.main(args); 

L'erreur que je reçois est:

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) 

Merci à l'avance.

Répondre

0

Mon problème a été causé par mon code de classe que j'ai essayé d'ajouter. C'est vraiment un point subtil: j'utilise une ArrayList de "Long", mais certaines de mes méthodes ajoutaient/supprimaient des variables de type "long". Bien que Java exécute la boxe et que je n'ai eu aucun problème à exécuter du code Java, une telle divergence est problématique dans les langues intermédiaires.

Questions connexes