У меня есть проект Android, который использует Autovalue для создания некоторых своих моделей. Я пытаюсь перейти от старых com.android.support.* к новым зависимостям androidx.*.
Я знаю, что в Android Gradle Plugin 3.2+ он пытается заменить все вхождения старых зависимостей поддержки, но, похоже, это не распространяется на интерфейсы, созданные Autovalue. Эти интерфейсы по-прежнему ссылаются на android.support.annotation.NonNull и android.support.annotation.Nullable, а не на androidx.annotation.*.
'com.android.tools.build:gradle:3.2.1'
implementation "com.google.auto.value:auto-value-annotations:1.6.2"
annotationProcessor "com.google.auto.value:auto-value:1.6.2"
androidx version - 1.0.0
У меня очень мало опыта работы с этими процессорами аннотаций, если есть какая-либо другая информация, которая может иметь значение, сообщите мне.
Спасибо за ваши предложения.
Убедитесь, что ваш файл gradle.properties включает эти параметры, рекомендованные в руководство по миграции, которые позволят системе сборки Android перенести для вас зависимости Maven, которые не были перенесены в пространство имен AndroidX:
android.useAndroidX=true
android.enableJetifier=true
Кроме того, гид пользователя для AutoValue рекомендует использовать API вместо реализации/компиляции для проектов Android.
К сожалению, использование API ничего не меняет. Сгенерированные зависимости по-прежнему используют android.support.annotation.
Я попытался настроить параметры, перечисленные выше, но они не решили проблему, кажется, что они применяются до создания классов Autovalue или игнорируют эти классы. Спасибо, что указали на проблему с
api, я попробую и вернусь к вам.