首页 > 解决方案 > 在 Android 上列出一个包中的所有类

问题描述

我正在尝试在 Android 上检索给定包名称中的类列表。我有一个看起来像这样的工作方法:

fun getClasses(context: Context, packageName: String): List<Class<*>> {
    val dexFile = DexFile(context.applicationInfo.sourceDir)
    return dexFile.entries().asSequence()
        .filter { it.startsWith(packageName) }
        .map { context.classLoader.loadClass(it) }.toList()
}

此实现的问题在于使用了已弃用的DexFile类。我尝试使用在这个问题的答案中找到的几个实现,但是我无法让它们中的任何一个返回任何类。

是否可以在不使用类的情况下在 Android 上检索给定包中的DexFile类列表?

标签: androidkotlin

解决方案


推荐阅读