我试图在Android中检索具有特定注释的类列表。我正在尝试使用反射库来做到这一点。但是无论我做什么,Reflections都会返回一个空集合。最后,我尝试使用Reflections.getAllTypes(),它应该返回包中的所有类,并且它给了我消息"无法找到Object的子类型"。确保SubTypesScanner初始化以包含Object类- new SubTypesScanner(false)"我已经验证了我正在这样做,所以我查看了该方法的代码,如果包中没有类,它会返回该错误。
下面是我得到错误的代码示例:
Reflections reflections = new Reflections(this.getClass().getPackage().getName(),
new SubTypesScanner(false));
Set<String> classes = reflections.getAllTypes(); // Throws runtime error
这至少应该返回调用它的类。我也尝试过使用一个空字符串作为包,答案在这里。你知道是什么引起的吗?
我遇到了同样的问题。因为Reflections使用java辅助来解析。jar文件中的。class文件,这在android应用程序中不存在,所以不可能使用Reflections。但是,我们可以使用其他工具来解析。dex也可以