2016-03-06 5 views
1

j'ai converti un fichier APK à jimple représentation intermédiaire en utilisant la suie ci-dessous commande:exception dans la conversion jimple à dex en utilisant la suie

java -Xmx2g -jar soot-trunk.jar soot.Main -w -allow-phantom-refs -android-jars /home/jyoti/Android/adt-bundle-linux-x86_64-20140702/sdk/platforms/ -src-prec apk -f jimple -process-dir Onlytelephony.apk 

Maintenant, je veux faire marche arrière. Je veux convertir des fichiers jimple en apk unique en utilisant la suie. Pour cela, je suis en utilisant la commande suivante:

java -Xmx2g -jar soot-trunk.jar soot.Main -w -allow-phantom-refs -android-jars /home/jyoti/Android/adt-bundle-linux-x86_64-20140702/sdk/platforms/ -src-prec jimple -f dex -process-dir jimple_Onlytelephony/ 

Mais cette commande me donner des exceptions comme suit:

[Thread-2] ERROR heros.solver.CountingThreadPoolExecutor - Worker 
thread execution failed: null java.lang.NullPointerException at 
soot.toolkits.graph.UnitGraph.<init (UnitGraph.java:76) at 
soot.toolkits.graph.ExceptionalUnitGraph.<init (ExceptionalUnitGraph.java:158) 
    at 
soot.jimple.toolkits.scalar.UnreachableCodeEliminator.internalTransform(UnreachableCodeEliminator.java:79) 
    at soot.BodyTransformer.transform(BodyTransformer.java:51) at 
soot.Transform.apply(Transform.java:105) at 
soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:61)  at 
soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:95)  at 
soot.Pack.apply(Pack.java:125) at 
soot.jimple.JimpleMethodSource.getBody(JimpleMethodSource.java:49) at 
soot.SootMethod.getBodyFromMethodSource(SootMethod.java:91) at 
soot.SootMethod.retrieveActiveBody(SootMethod.java:322) at 
soot.PackManager$3.run(PackManager.java:1223)  at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
java.util.concurrent.RejectedExecutionException: Task 
[email protected] rejected from 
[email protected][Shutting down, pool 
size = 3, active threads = 3, queued tasks = 0, completed tasks = 3] 
    at 
java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048) 
    at 
java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821) 
    at 
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372) 
    at 
heros.solver.CountingThreadPoolExecutor.execute(CountingThreadPoolExecutor.java:51) 
    at soot.PackManager.retrieveAllBodies(PackManager.java:1219) at 
soot.PackManager.runPacksNormally(PackManager.java:463) at 
soot.PackManager.runPacks(PackManager.java:396) at 
soot.Main.run(Main.java:271) at soot.Main.main(Main.java:147) 

Comment puis-je convertir Jimple Dex en utilisant la suie?

Répondre

0

Pouvez-vous s'il vous plaît poser cette question sur la liste de diffusion Soot? Quoi qu'il en soit, cela semble étrange. Je ne comprends même pas pourquoi dans ce cas, Soot fait référence à Heros. Ça ne devrait pas.

+0

Le problème est résolu maintenant. Le suot-trunk.jar avait un problème. La dernière version a résolu le problème. Merci Eric ... –