【问题标题】:Reflections library returns empty list in Android反射库在 Android 中返回空列表
【发布时间】:2015-09-24 22:53:55
【问题描述】:

我正在尝试在 Android 中检索具有特定注释的类列表。我正在尝试使用Reflections library 这样做。但无论我做什么,Reflections 都会返回一个空集。最后,我尝试使用 Reflections.getAllTypes(),它应该返回一个包中的所有类,它给了我消息“找不到 Object 的子类型。确保初始化 SubTypesScanner 以包含 Object 类 - 新的 SubTypesScanner(false)”我已经验证我正在这样做,所以我查看了该方法的代码,如果包中没有类,它会返回该错误。

这是我收到错误的代码示例:

Reflections reflections = new Reflections(this.getClass().getPackage().getName(), 
        new SubTypesScanner(false));
Set<String> classes = reflections.getAllTypes(); // Throws runtime error

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

【问题讨论】:

  • 我已将设计更改为使用编译时注释处理,所以我不再需要这个答案,但我仍然想知道。

标签: java android reflection


【解决方案1】:

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

【讨论】:

  • 如果您能详细说明使用哪种工具会非常有帮助。谢谢。
猜你喜欢
  • 2018-07-10
  • 2015-11-16
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 2017-04-21
  • 1970-01-01
相关资源
最近更新 更多