Anotações do Android não compiladas com Ant
-
11-12-2019 - |
Pergunta
Depois de seguir todas as etapas listadas aqui, descobri que minha (Class)_ ainda não estava sendo gerada.
regras personalizadas:
<?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>
Registro:
C:{path}{Class}.java (8:34) não é possível encontrar a classe de símbolo Activity_
Observação:Iniciando o processamento de anotações do AndroidAnnotations
:Arquivos não fechados para os tipos '[dummy1343240015623]';esses tipos não passarão por processamento de anotação
Parece que o processamento começa depois não é possível encontrar Activity_.Erro ou como pretendido?
Todos os arquivos estão no local correto ( api.jar em \libs, .jar em \compile-libs ) e não consigo descobrir nada durante minha vida.
Editado: Fui bisbilhotar um pouco.Adicionado em um novo property
para a pasta de origem gerada pelo AndroidAnnotations, adicionei-a ao javac
src
caminho durante -compile
e ainda sem sorte.Na primeira vez que executo o script ant, ele me diz que não consegue encontrar nenhuma das classes geradas; na segunda vez, ele me diz que tenho duplicatas de todas elas (ainda me dá a unclsed files for types...
mensagem de erro ).
Solução
Então, possível solução aqui.Eu precisava adicionar algumas edições à própria compilação do javac, bem como excluir e mkdir acima, para que ele gerasse novamente todos os arquivos necessários e não vomitasse devido às permissões de substituição.
<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>