Сканирование аннотированных классов не работает с Instant Run
С Android Studio 2.0 Preview 5 и плагином Android Gradle 2.0.0-Alpha5 больше невозможно сканировать аннотированные классы. Это связано с тем, что в Instant Run apk разделен на несколько частей.
Загрузка файла dex с
DexFile dex = new DexFile(context.getApplicationInfo().sourceDir);
приводит к следующему исключению:
java.io.IOException: No original dex files found for dex location /data/app/<...>.Android-1/base.apk
Я не хочу отключать мгновенный запуск. Есть ли другие способы загрузки DexFile или разделенных DexFiles?
1 ответ
Решение
Короткий ответ: да, он больше не работает.
Длинный ответ: использовать пользовательский javax.annotation.processing.Processor
и генерировать код. Вы можете интегрировать процессор с android-apt в процесс сборки gradle.
У меня есть простой пример, который показывает, как собирать классы с аннотациями и как создавать статический реестр.