【发布时间】:2016-10-01 13:40:01
【问题描述】:
我正在编写一些使用 java 反射的代码。我正在使用这种方法扫描我的包中的某个类:
/**
* Called to get list of classes included in the current project
*
* @param packageName the name of application package
* @return array of classes' names
*/
private String[] getClassesOfPackage(String packageName) {
ArrayList<String> classes = new ArrayList<>();
try {
String packageCodePath = getPackageCodePath();
DexFile df = new DexFile(packageCodePath);
for (Enumeration<String> iter = df.entries(); iter.hasMoreElements(); ) {
String className = iter.nextElement();
if (className.contains(packageName)) {
classes.add(className);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return classes.toArray(new String[classes.size()]);
}
最近我将Gradle 版本升级到2.1.0 以尝试即时运行功能,但我注意到我的应用程序包通常从该方法返回空String[],并且该方法仅返回名称为@ 的包内的类987654325@
为什么我的应用包中看不到类?!
【问题讨论】:
标签: android android-studio gradle reflections android-instant-run