2015-07-21 2 views
0

воображают некоторые proyect как this one, использующие Android-аннотаций и для этой работы я должен поставить это в build.gradleAndroid Аннотации + несколько путей к APT

apt { 
    arguments { 
     resourcePackageName "com.pandaos.smartconfig" 
     androidManifestFile variant.outputs[0].processResources.manifestFile 
    } 
} 

где: resourcePackageName «com.pandaos.smartconfig "

его путь, где код ИТС аннотированный ... конфиг для плагина android-apt

apply plugin: 'com.neenbedankt.android-apt' 

Я полагаю, что этот плагин «вызывает» какую-то задачу генерировать код, который андроид-аннотации создают под капотом, но ...

Возможно ли определить несколько «пакетов в приложении»?

ответ

3

resourcePackageName происходит от опции конфигурации для AndroidAnnotations как упоминалось here:

По умолчанию AndroidAnnotations попытаться найти R класс путем извлечения пакета приложения из AndroidManifest.xml файла. Но в некоторых случаях вы можете указать специальный пакет для поиска класса R. Вот почему мы добавили опцию resourcePackageName.

Есть две вещи, чтобы отметить:

  1. Опция указывает на имя Android пакета, который не обязательно должен быть таким же, как ваш Java имя пакета.

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

Это совершенно нормально, чтобы иметь различный Java имя пакета в вашем коде. AFAIK это никак не повлияет на AndroidAnnotations.

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

+0

Ну, вы прекрасно объяснили;) может во время перехода от «ничего» к градиенту в этом проекте ... я помещаю имя ресурса resourcePackegeName, не зная, что я делаю, а позже он, когда нужен новый пакет, этот limite, где AA ищет аннотацию , я пытаюсь использовать разные подходы, и АА делает свою работу, еще один совет, в sourceSet java.srcDirs = ['build/source/apt/debug'] не требуется и не работает, тоже работает – accreativos