Android Studio 的 Instant Run 惹的祸
在使用Android通过PathClassLoader和Dexfile扫描获取应用的所有类的时候傻眼了…
参考代码
public static void scan(Context ctx) {
try {
PathClassLoader classLoader =(PathClassLoader)Thread.currentThread().getContextClassLoader();
DexFile dex = new DexFile(ctx.getPackageResourcePath());
Enumeration<String> entries = dex.entries();
while (entries.hasMoreElements()) {
String entry = entries.nextElement();
Log.d(TAG,"class:"+entry)
}
} catch (Exception e) {
e.printStackTrace();
}
}
Android Studio 2.2.x是默认开启Instant Run功能
开启Instant Run功能和关闭Instant Run功能运行的结果是不一样
当然喽,正确的结果是关闭Instant Run功能的功能才是想要的结果
关闭Instant Run功能的方法
Settings Or Preferences
Build,Execution,Deployment ----> Instant Run ---> 把第一个勾选框去掉打钩