2016-03-06 29 views
1

我已經轉換一個apk文件到DEX使用以下命令菸灰jimple中間表示:例外在轉換jimple使用菸灰

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 

現在我想要做反向。我想使用soot將jimple文件轉換爲單個apk文件。對於此,我使用下面的命令:

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/ 

但這個命令讓我異常如下:

[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) 

我如何轉換Jimple用菸灰DEX?

回答

0

你可以在菸灰郵件列表上問這個問題嗎?無論如何這看起來很奇怪。我甚至不明白爲什麼在這種情況下,Soot根本就是指英雄。它不應該。

+0

現在問題已解決。 soot-trunk.jar有問題。最新版本解決了這個問題。謝謝Eric ... –