Аннотации Android не скомпилированы с помощью Ant
-
11-12-2019 - |
Вопрос
После выполнения всех перечисленных шагов здесь, я обнаружил, что мой (Класс)_ все еще не генерируется.
пользовательские правила:
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<target name="-compile" depends="-build-setup, -pre-build, -code-gen, -pre-compile">
<do-only-if-manifest-hasCode elseText="hasCode = false. Skipping...">
<!-- merge the project's own classpath and the tested project's classpath -->
<path id="project.javac.classpath">
<path refid="project.all.jars.path" />
<path refid="tested.project.classpath" />
</path>
<javac encoding="${java.encoding}"
source="${java.source}" target="${java.target}"
debug="true" extdirs="" includeantruntime="false"
destdir="${out.classes.absolute.dir}"
bootclasspathref="project.target.class.path"
verbose="${verbose}"
classpathref="project.javac.classpath"
fork="${need.javac.fork}">
<classpath>
<fileset dir="compile-libs" includes="*.jar"/>
</classpath>
<src path="${source.absolute.dir}" />
<src path="${gen.absolute.dir}" />
<compilerarg line="${java.compilerargs}" />
</javac>
<!-- bunch of if conditions here -->
</target>
</project>
Бревно:
C:{path}{Class}.java (8:34) не может найти класс символов Activity_
Примечание:Запуск обработки аннотаций AndroidAnnotations
:Незакрытые файлы для типов '[dummy1343240015623]';эти типы не будут подвергаться обработке аннотаций
Кажется, обработка началась после он не может найти Activity_.Ошибка или так и было задумано?
Все файлы находятся в правильном месте (api.jar в \libs, .jar в \compile-libs), и я не могу ничего понять.
Отредактировано: Пошел немного покопаться.Добавлено в новом property
для созданной исходной папки AndroidAnnotations добавил ее в файл javac
src
путь во время -compile
и все равно не повезло.В первый раз, когда я запускаю сценарий ant, он сообщает мне, что не может найти ни один из сгенерированных классов, во второй раз он сообщает мне, что у меня есть их все дубликаты (все еще дает мне unclsed files for types...
сообщение об ошибке ).
Решение
Итак, возможное решение здесь.Мне нужно было добавить пару правок в саму компиляцию javac, а также удалить и mkdir выше, чтобы он постоянно заново генерировал все нужные ему файлы и не блевал сам из-за разрешений на перезапись.
<target name="-compile"
depends="-build-setup, -pre-build, -code-gen, -pre-compile">
<do-only-if-manifest-hasCode elseText="hasCode = false. Skipping...">
<!-- merge the project's own classpath and the tested project's classpath -->
<path id="project.javac.classpath">
<path refid="project.all.jars.path"/>
<path refid="tested.project.classpath"/>
</path>
<delete dir="${out.aagen}"/>
<mkdir dir="${out.aagen}"/>
<javac encoding="${java.encoding}"
source="${java.source}"
target="${java.target}"
debug="true"
extdirs=""
includeantruntime="false"
destdir="${out.classes.absolute.dir}"
bootclasspathref="project.target.class.path"
verbose="${verbose}"
classpathref="project.javac.classpath"
fork="${need.javac.fork}">
<src path="${source.absolute.dir}"/>
<src path="${gen.absolute.dir}"/>
<src path="${out.aagen}"/>
<compilerarg line="${java.compilerargs}"/>
<compilerarg line="-processorpath ${processorpath}"/>
<compilerarg line="-processor ${processor}"/>
<compilerarg line="-s ${out.aagen}"/>
</javac>
<!-- a bunch of other crap that is unimportant -->
</target>