Сканирование аннотированных классов не работает с 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.

У меня есть простой пример, который показывает, как собирать классы с аннотациями и как создавать статический реестр.

Другие вопросы по тегам