Аннотации 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 вариант.

Следует отметить две вещи:

  1. Опция ссылается на имя пакета Android, которое не должно совпадать с именем вашего пакета java.

  2. R имя пакета может отличаться от имени пакета Android, которое вы установили в AndroidManifest.xml если вы используете applicationId опция в файле сборки Gradle.

Вполне нормально иметь другое имя пакета Java в вашем коде. AFAIK это никак не повлияет на Android-аннотации.

apt блок предоставляется android-apt Плагин и позволяет настроить любой параметр для аннотирования процессоров в вашем проекте. В этом случае он настраивает параметры, которые AndroidAnnotations должны выполнять свою работу. android-apt В этом случае плагин служит двум целям: он настраивает параметры для процессора AndroidAnnotations и проверяет, можете ли вы ссылаться на источники, сгенерированные AA в Android Studio.

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