http://www.sable.mcgill.ca/soot/tutorial/profiler2/profiler2.html의 Java 계측에 대한 예제에 따라 도우미 클래스를 사용하여 Android 애플리케이션을 계측하고 있습니다. 제 BodyTransformer에서 헬퍼 클래스를 사용하여 Soot로 Android 앱을 계측
, 난 MyCounter 클래스counterClass = Scene.v().loadClassAndSupport("MyCounter");
(I는 -android-병을 제공하는) 내 인수를 처리 Soot.Main.main (인수)이 실행되지 않기 때문에로드 정적 블록을 이 MyCounter를로드하는 동안, 그을음 내 안드로이드 항아리를 발견하고 오류 제공 할 수 없습니다 솔루션으로
Caused by: java.lang.RuntimeException: You are analyzing an Android application but did not define android.jar. Options -android-jars or -force-android-jar should be used.
at soot.Scene.defaultClassPath(Scene.java:455)
at soot.Scene.getSootClassPath(Scene.java:224)
at soot.SootResolver.<init>(SootResolver.java:81)
at soot.Singletons.soot_SootResolver(Singletons.java:802)
at soot.SootResolver.v(SootResolver.java:91)
at soot.Scene.loadClass(Scene.java:667)
at soot.Scene.loadClassAndSupport(Scene.java:653)
at MyBodyTransformer.<clinit>(MyBodyTransformer.java:26)
... 1 more
을, 나는 나의 주 나의 명령 줄 인수 (안드로이드 항아리, 매연 클래스 경로, 앞에 추가 클래스 경로 및 프로세스 디렉토리를) 제공 BodyTransformer를 만들기 전에 이제 작동합니다.
이 문제를 해결하는 더 적절한 방법이 있는지 묻고 싶습니다.