Аннотации Android + несколько путей к APT
Представьте какой-нибудь проект, подобный этому, который использует android-аннотации, и для этой работы я должен поместить это в build.gradle
apt {
arguments {
resourcePackageName "com.pandaos.smartconfig"
androidManifestFile variant.outputs[0].processResources.manifestFile
}
}
где: имя_ресурса_пакета "com.pandaos.smartconfig"
его путь, где код его аннотирован... конфиг для плагина android-apt
apply plugin: 'com.neenbedankt.android-apt'
Я полагаю, что плагин "вызывает" некоторую задачу для генерации кода, который создают под Android-аннотации, но...
Можно ли определить несколько "пакетов в приложении"?
1 ответ
resourcePackageName
происходит от опции конфигурации для аннотаций Android, как упомянуто здесь:
По умолчанию аннотации Android пытаются найти
R
класс путем извлечения пакета приложения изAndroidManifest.xml
файл. Но в некоторых случаях вы можете указать пользовательский пакет для поиска класса R. Вот почему мы добавилиresourcePackageName
вариант.
Следует отметить две вещи:
Опция ссылается на имя пакета Android, которое не должно совпадать с именем вашего пакета java.
R
имя пакета может отличаться от имени пакета Android, которое вы установили вAndroidManifest.xml
если вы используетеapplicationId
опция в файле сборки Gradle.
Вполне нормально иметь другое имя пакета Java в вашем коде. AFAIK это никак не повлияет на Android-аннотации.
apt
блок предоставляется android-apt
Плагин и позволяет настроить любой параметр для аннотирования процессоров в вашем проекте. В этом случае он настраивает параметры, которые AndroidAnnotations должны выполнять свою работу. android-apt
В этом случае плагин служит двум целям: он настраивает параметры для процессора AndroidAnnotations и проверяет, можете ли вы ссылаться на источники, сгенерированные AA в Android Studio.