【发布时间】:2020-08-02 08:27:32
【问题描述】:
我尝试运行 soot 依赖的应用程序,在编译中使用大量 jar 文件作为依赖项,并且每次出现新错误时。 我最后得到的错误是这样的:
[main] INFO soot.jimple.infoflow.android.SetupApplication - ARSC 文件解析耗时 0.01102201 秒 线程“main”中的异常 java.lang.NoSuchMethodError: soot.Body.getUnits()Lsoot/PatchingChain; 在 soot.jimple.infoflow.entryPointCreators.BaseEntryPointCreator.createEmptyMainMethod(BaseEntryPointCreator.java:165) 在 soot.jimple.infoflow.entryPointCreators.BaseEntryPointCreator.createDummyMainInternal(BaseEntryPointCreator.java:123) 在 soot.jimple.infoflow.entryPointCreators.BaseEntryPointCreator.createDummyMain(BaseEntryPointCreator.java:109) 在 soot.jimple.infoflow.android.SetupApplication.createMainMethod(SetupApplication.java:622) 在 soot.jimple.infoflow.android.SetupApplication.calculateCallbackMethods(SetupApplication.java:471) 在 soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:401) 在 soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:359) 在 Appgraph.main(Appgraph.java:37)
我尝试在 Java 11 和 Java 8 中运行它,但出现了同样的错误。我使用的编译和运行命令是:
javac -cp ".:soot-4.1.0-jar-with-dependencies.jar:soot-infoflow-android.jar:soot-infoflow.jar:axml-2.0.jar:commons-io- 2.6.jar:android.jar:guava-27.1-android.jar:jsr305-1.3.9.jar:dexlib2-2.3.4.jar:multidexlib2-2.3.4.r2.jar:failureaccess-1.0.1.jar: sootall-2.5.0.jar:soot-2.5.0.jar:soot.jar:soot-4.1.0-jar-with-dependencies.jar" Appgraph.java 用于编译命令
java -Xmx2g -cp ".:soot-4.1.0-jar-with-dependencies.jar:soot-infoflow-android.jar:soot-infoflow.jar:axml-2.0.jar:commons- io-2.6.jar:android.jar:guava-27.1-android.jar:jsr305-1.3.9.jar:dexlib2-2.3.4.jar:multidexlib2-2.3.4.r2.jar:failureaccess-1.0.1。 jar:sootall-2.5.0.jar:soot-2.5.0.jar:SourcesAndSinks.txt" Appgraph apks/3baea0cd661a580a84e4110b1a309942.apk . 作为运行命令
我尝试了多个版本的 soot,但没有一个版本可以解决上述错误。
【问题讨论】:
标签: java jar dependencies soot