当前位置: 代码迷 >> Android >> android 扫描某个包下的全部class文件
  详细解决方案

android 扫描某个包下的全部class文件

热度:87   发布时间:2016-04-28 05:08:41.0
android 扫描某个包下的所有class文件
public static List<Class<?>> scan(Context ctx, String entityPackage) {		List<Class<?>> classes = new ArrayList<Class<?>>();		try {			PathClassLoader classLoader = (PathClassLoader) Thread					.currentThread().getContextClassLoader();			DexFile dex = new DexFile(ctx.getPackageResourcePath());			Enumeration<String> entries = dex.entries();			while (entries.hasMoreElements()) {				String entryName = entries.nextElement();				if (entryName.contains(entityPackage)) {					Class<?> entryClass = Class.forName(entryName, true,classLoader);//疑问:Class.forName(entryName);这种方式不知道为什么返回null,哪位大神知道原因,请指点一下小弟吧  感激不尽					DatabaseTable annotation = entryClass.getAnnotation(DatabaseTable.class);					if (annotation != null) {						classes.add(entryClass);					}				}			}		} catch (Exception e) {			e.printStackTrace();		}		return classes;	}

?

  相关解决方案