java - 反射库在 Android 中返回空列表

标签 java android reflection

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

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

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

这至少应该返回调用它的类。我也试过为包使用空字符串,答案是 here .知道是什么原因造成的吗?

最佳答案

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

关于java - 反射库在 Android 中返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32772229/

相关文章:

java - 自定义 spring boot 自动配置未检测到 bean

java - String.intern() 线程安全吗

android - 无法在 Android Studio 3.0 AVD Manager 或 SDK Manager 中下载系统镜像

java - 给定一个 java 对象,我可以确认它是一个可由 hibernate 持久化的 bean

java - 如何在热源上使用 groupBy

java - Docker 错误 : Could not find or load Main class Main. 主要

android - Firebase Crashlytics 无法在 Firebase 控制台中报告崩溃

java - 使用套接字在 java 同步方法中抛出 NullPointerException

c# - 从动态类型创建泛型类的实例

c# - 如何知道静态方法的类名