ich einige Code hatte eine Liste aller Klassen in einem Paket zu erhalten, die in etwa so aussah:Android Studio 2.0 Instant-Run führt DexFile nicht alle Klassen laden
try {
DexFile df = new DexFile(context.getPackageCodePath());
for (Enumeration<String> iter = df.entries(); iter.hasMoreElements();) {
String s = iter.nextElement();
}
} catch (IOException e) {
e.printStackTrace();
}
jedoch dieser Code funktioniert nicht mehr da Ich habe mein Android Studio auf Version 2.0 aktualisiert. Ich habe festgestellt, dass der Übeltäter Instant Run ist. Wenn ich die App debuggen kann, sehe ich, dass die DexFile-Variable, df, ohne Instanzlauf eine Liste von Klassennamen (über 4.000 davon) enthält. Wenn Instant Run aktiviert ist, erhalte ich nur ungefähr 30 Klassennamen, und die Klassen, nach denen ich suche, sind nicht vorhanden. Ich habe das Gefühl, dass es etwas mit Multidex zu tun hat, aber ich bin mir nicht sicher, wie Instant Run unter der Decke funktioniert (meine App benutzt kein Multidex).
Weiß jemand, wie ich mit Instant Run eine Liste von Klassen wie diesem bekommen kann? Oder weiß jemand genau, warum ich dieses Verhalten sehe (wäre es toll, es zu verstehen)?
Bitte nehmen Sie sich einen Blick auf diese [Antwort] (http://stackoverflow.com/questions/36572515/dexfile-in-2-0-versions-of-android-studio-and -Grabbel). InstantRun hat die DexFile-Logik zerstört. – Sol