You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exception in thread "main" java.lang.IllegalStateException: Class Information Should not be null
at sootup.apk.frontend.dexpler.DexClassSource.resolveSuperclass(DexClassSource.java:114)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:181)
at sootup.core.model.SootClass.getSuperclass(SootClass.java:158)
at sootup.java.core.JavaSootClass.getSuperclass(JavaSootClass.java:129)
at java.base/java.util.Optional.flatMap(Optional.java:289)
at sootup.interceptors.typeresolving.AugEvalFunction.getExceptionPath(AugEvalFunction.java:253)
at sootup.interceptors.typeresolving.AugEvalFunction.getLeastCommonExceptionType(AugEvalFunction.java:281)
at sootup.interceptors.typeresolving.AugEvalFunction.evaluate(AugEvalFunction.java:199)
at sootup.interceptors.typeresolving.TypeResolver.applyAssignmentConstraint(TypeResolver.java:216)
at sootup.interceptors.typeresolving.TypeResolver.resolve(TypeResolver.java:75)
at sootup.interceptors.TypeAssigner.interceptBody(TypeAssigner.java:42)
at sootup.apk.frontend.dexpler.DexMethodSource.resolveBody(DexMethodSource.java:65)
at sootup.apk.frontend.dexpler.DexMethodSource.makeSootMethod(DexMethodSource.java:76)
at sootup.apk.frontend.main.DexBody.makeSootMethod(DexBody.java:360)
at sootup.apk.frontend.dexpler.DexMethod.makeSootMethod(DexMethod.java:55)
at sootup.apk.frontend.dexpler.DexClassSource.loadMethod(DexClassSource.java:144)
at sootup.apk.frontend.dexpler.DexClassSource.lambda$resolveMethods$0(DexClassSource.java:69)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at sootup.apk.frontend.dexpler.DexClassSource.resolveMethods(DexClassSource.java:70)
at sootup.core.model.SootClass.lazyMethodInitializer(SootClass.java:78)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:181)
at sootup.core.model.SootClass.getMethods(SootClass.java:95)
at sootup.java.core.JavaSootClass.getMethods(JavaSootClass.java:68)
at sootupexport.FactGenerator.generate(FactGenerator.java:28)
at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at sootupexport.FactGenerator.run(FactGenerator.java:22)
at sootupexport.Main.main(Main.java:32)
The text was updated successfully, but these errors were encountered:
When I built callgraph for the apk, I also hit this bug.
I did some debugging and I found that sootup finds the dex file from the apk and builds a mapping for it: class sig->dex file.
When sootup goes to parse the code, it will find that some classes are not in the map. And this bug occurs.
sootup currently just finds a target android-x folder under the android platform path, but does not resolve android-x/android.jar. And the missing class file is in the android-x/android.jar. I think that's why the problem arises.
What happened?
Check #958
Version
Latest develop branch
Relevant log output
The text was updated successfully, but these errors were encountered: