secure-software-engineering / FlowDroid

FlowDroid Static Data Flow Tracker
GNU Lesser General Public License v2.1
1.03k stars 293 forks source link

Flowdroid loop endlessly when constructing call graph of real app #529

Closed ZephyrusZhang closed 1 year ago

ZephyrusZhang commented 1 year ago

Hi, Steven. Today when I was trying to construct call graph of a real app (https://f-droid.org/zh_Hans/packages/com.forrestguice.suntimeswidget/), Flowdroid fail to construct call graph since it repeat printing the message below endlessly.

[main] INFO soot.jimple.infoflow.android.SetupApplication - Constructing the callgraph...
[main] INFO soot.jimple.infoflow.android.callbacks.DefaultCallbackAnalyzer - Running incremental callback analysis for 40 components...
[main] INFO soot.jimple.infoflow.android.callbacks.DefaultCallbackAnalyzer - Incremental callback analysis done.
[main] INFO soot.jimple.infoflow.android.entryPointCreators.AndroidEntryPointCreator - Creating Android entry point for 48 components...
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.FragmentEntryPointCreator - Could not find Android entry point method: void onAttachFragment(android.app.Fragment)
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.FragmentEntryPointCreator - Could not find Android entry point method: void onAttachFragment(android.app.Fragment)
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.FragmentEntryPointCreator - Could not find Android entry point method: void onAttachFragment(android.app.Fragment)
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.FragmentEntryPointCreator - Could not find Android entry point method: void onAttachFragment(android.app.Fragment)
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.FragmentEntryPointCreator - Could not find Android entry point method: void onAttachFragment(android.app.Fragment)
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass
[main] WARN soot.jimple.infoflow.android.entryPointCreators.components.ActivityEntryPointCreator - Cannot create valid constructor for com.forrestguice.suntimeswidget.getfix.GetFixUI, because it is abstract and cannot substitute with subclass

I wonder why this happened and how to solve this problem. I will be grateful if you could offer some help

ZephyrusZhang commented 1 year ago

This problem has been solved by change JDK version to 1.8 (Java 8)