я имел некоторый код, чтобы получить список всех классов в пакете, который выглядел примерно так:Android Studio 2.0 Instant Run вызывает DexFile не загружать все классы
try {
DexFile df = new DexFile(context.getPackageCodePath());
for (Enumeration<String> iter = df.entries(); iter.hasMoreElements();) {
String s = iter.nextElement();
}
} catch (IOException e) {
e.printStackTrace();
}
Однако этот код перестал работать так Я обновил свою версию Android Studio до версии 2.0. Я обнаружил, что виновником является Instant Run. Если я отлаживаю приложение, я вижу, что без запуска экземпляра переменная DexFile, df, содержит список имен классов (более 4000 из них). Когда Instant Run включен, я получаю только около 30 имен классов, а классы, которые я ищу, отсутствуют. У меня такое чувство, что это имеет какое-то отношение к multi dex, но я не уверен, как работает Instant Run под обложками (мое приложение не использует multidex).
Кто-нибудь знает, как я могу получить список классов, подобных этому, когда включен Instant Run? Или кто-нибудь точно знает, почему я вижу это поведение (было бы здорово это понять)?
Пожалуйста, обратите внимание на это [ответ] (http://stackoverflow.com/questions/36572515/dexfile-in-2-0-versions-of-android-studio-and -gradle). InstantRun нарушил логику DexFile. – Sol