Обновление Android с версии 1.4 до 1.7

Привет я хотел обновить Android-APT в моем проекте с версии 1.4 до 1.7

В настоящее время я использую автосервис Google 1.0-rc2, поэтому все, что мне нужно было сделать, это поставить @AutoService(Processor.class) аннотации в моем классе процессора аннотаций.

После обновления android-apt до версии 1.7 мой процессор аннотаций перестал работать. Кажется, он не вызывается во время сборки.

Я думал, что автосервис может быть проблемой. Итак, я сделал resources/META-INF/services/javax.annotation.processing.Processor файл с содержанием

pl.edu.radomski.navigator.NavigatorAnnotationProcessor

К сожалению, это не помогло вообще.

Если вы хотите увидеть код с android-apt 1.4 и автосервисом 1.0-rc2, он доступен здесь

Есть ли простой способ обновить android-apt и сохранить работу процессора?

Это ошибка auto-service 1.0-rc2 или что-то не так с android-apt?

1 ответ

Решение

В 1.7 было внесено изменение, чтобы не создавать автоматически зависимый проект, который установлен как apt, из-за нежелательных побочных эффектов, влияющих на порядок сборки.

В 1.8 у меня, вероятно, будет лучший способ его поддержать, но пока вы можете настроить apt блок, чтобы указать, что ваш процессор должен работать следующим образом:

apt {
 processor "pl.edu.radomski.navigator.NavigatorAnnotationProcessor"
}

Обратите внимание, что это необходимо только в том случае, если ваш процессор находится в том же проекте, что и ваше приложение или библиотека. Причина в том, что файл в META-INF/services не читается javac в этой настройке, потому что проект не упакован в этот момент. Явное добавление processor заявление добавит процессор, который javac иначе бы не открыл.

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