[Soot-list] Analyzing Android source code
Jonas De Bleser
jonas.de.bleser at vub.be
Wed Apr 19 09:25:14 EDT 2017
I’m trying to analyse an Android Studio project. However, it doesn’t work with the following options (Java SDK 1.8) :
String[] sootArgsJar = {
"-cp", "/Users/jonas/Library/Android/sdk/platforms/android-17/android.jar",
"-w", //"-whole-program",
"-v", // verbose
"-process-dir", "/Users/jonas/AndroidStudioProjects/Test/app/src",
"-keep-line-number",
"-allow-phantom-refs",
};
soot.Main.main(sootArgsJar);
I get the following error:
Exception in thread "main" java.lang.Error: Error: Failed to load java.lang.reflect.AnnotatedElement.
I’m not sure what the problem is. I thought it had something to do with the annotation @Override,but removing it from the class did not help. Is it a bug or doesn’t SOOT support this?
Full error log:
objc[35881]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10276c4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x1048a94e0). One of the two will be used. Which one is undefined.
Soot started on Wed Apr 19 15:24:58 CEST 2017
Warning: java.lang.invoke.LambdaMetafactory is a phantom class!
Warning: java.lang.ref.Finalizer is a phantom class!
resolving [from .java]: main.java.com.example.jonas.test.APIResourceLeak
Exception in thread "main" java.lang.Error: Error: Failed to load java.lang.reflect.AnnotatedElement.
at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:109)
at soot.JastAddJ.Program.getCompilationUnit(Program.java:844)
at soot.JastAddJ.Program.getLibCompilationUnit_compute(Program.java:1517)
at soot.JastAddJ.Program.getLibCompilationUnit(Program.java:1500)
at soot.JastAddJ.Program.lookupLibType_compute(Program.java:1465)
at soot.JastAddJ.Program.lookupLibType(Program.java:1433)
at soot.JastAddJ.Program.lookupType_compute(Program.java:1412)
at soot.JastAddJ.Program.lookupType(Program.java:1393)
at soot.JastAddJ.Program.Define_TypeDecl_lookupType(Program.java:1981)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.Expr.lookupType(Expr.java:1186)
at soot.JastAddJ.TypeAccess.decls_compute(TypeAccess.java:425)
at soot.JastAddJ.TypeAccess.decls(TypeAccess.java:414)
at soot.JastAddJ.TypeAccess.refined_TypeScopePropagation_TypeAccess_decl(TypeAccess.java:387)
at soot.JastAddJ.TypeAccess.decl_compute(TypeAccess.java:460)
at soot.JastAddJ.TypeAccess.decl(TypeAccess.java:452)
at soot.JastAddJ.TypeAccess.type_compute(TypeAccess.java:590)
at soot.JastAddJ.TypeAccess.type(TypeAccess.java:583)
at soot.JastAddJ.List.substitute(List.java:96)
at soot.JastAddJ.ParClassDecl.getImplementsList_compute(ParClassDecl.java:1039)
at soot.JastAddJ.ParClassDecl.getImplementsList(ParClassDecl.java:1028)
at soot.JastAddJ.ParClassDecl.getNumImplements(ParClassDecl.java:607)
at soot.JastAddJ.ClassDecl.isCircular_compute(ClassDecl.java:1693)
at soot.JastAddJ.ClassDecl.isCircular(ClassDecl.java:1673)
at soot.JastAddJ.ClassDecl.superclass(ClassDecl.java:240)
at soot.JastAddJ.ClassDecl.supertypeClassDecl(ClassDecl.java:1841)
at soot.JastAddJ.TypeDecl.supertypeParClassDecl(TypeDecl.java:4489)
at soot.JastAddJ.ParClassDecl.subtype_compute(ParClassDecl.java:1164)
at soot.JastAddJ.ParClassDecl.subtype(ParClassDecl.java:1128)
at soot.JastAddJ.ParClassDecl.instanceOf_compute(ParClassDecl.java:1327)
at soot.JastAddJ.ParClassDecl.instanceOf(ParClassDecl.java:1320)
at soot.JastAddJ.ConstructorDecl.applicableBySubtyping(ConstructorDecl.java:1624)
at soot.JastAddJ.Expr.chooseConstructor(Expr.java:139)
at soot.JastAddJ.ClassInstanceExpr.decls_compute(ClassInstanceExpr.java:940)
at soot.JastAddJ.ClassInstanceExpr.decls(ClassInstanceExpr.java:931)
at soot.JastAddJ.ClassInstanceExpr.refined_NameCheck_ClassInstanceExpr_nameCheck(ClassInstanceExpr.java:170)
at soot.JastAddJ.ClassInstanceExpr.nameCheck(ClassInstanceExpr.java:754)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1283)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.CompilationUnit.errorCheck(CompilationUnit.java:178)
at soot.JastAddInitialResolver.formAst(JastAddInitialResolver.java:58)
at soot.JavaClassSource.resolve(JavaClassSource.java:54)
at soot.SootResolver.bringToHierarchy(SootResolver.java:243)
at soot.SootResolver.bringToSignatures(SootResolver.java:275)
at soot.SootResolver.bringToBodies(SootResolver.java:313)
at soot.SootResolver.processResolveWorklist(SootResolver.java:166)
at soot.SootResolver.resolveClass(SootResolver.java:134)
at soot.Scene.loadClass(Scene.java:873)
at soot.Scene.loadClassAndSupport(Scene.java:858)
at soot.Scene.loadNecessaryClasses(Scene.java:1598)
at soot.Main.run(Main.java:250)
at soot.Main.main(Main.java:147)
at Main.main(Main.java:55)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1612
at soot.JastAddJ.BytecodeParser.parseThisClass(BytecodeParser.java:437)
at soot.JastAddJ.BytecodeParser.parseTypeDecl(BytecodeParser.java:404)
at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:331)
at soot.JastAddJ.BytecodeParser.read(BytecodeParser.java:27)
at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:87)
... 65 more
Process finished with exit code 1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20170419/699864d0/attachment-0001.html>
More information about the Soot-list
mailing list