Reflections 库在 Android 中返回空列表

TBr*_*s42 2 java reflection android

我正在尝试检索 Android 中具有特定注释的类列表。我正在尝试使用Reflections 库来做到这一点。但无论我做什么,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
Run Code Online (Sandbox Code Playgroud)

这至少应该返回调用它的类。我还尝试对包使用空字符串,答案在这里。有什么想法可能导致这种情况吗?

Hu *_* lv 6

我遇到了同样的问题。由于Reflections使用java辅助来解析.jar文件中的.class文件,而android应用程序中不存在该文件,因此不可能使用Reflections。但是我们可以使用其他工具来解析 .dex 并且它会起作用

  • 如果您能详细说明要使用哪种工具,将会非常有帮助。谢谢。 (3认同)