Java 未使用Ant编译的Android注释
在完成了列出的所有步骤之后,我发现我的类仍然没有生成 自定义规则:Java 未使用Ant编译的Android注释,java,android,ant,android-annotations,Java,Android,Ant,Android Annotations,在完成了列出的所有步骤之后,我发现我的类仍然没有生成 自定义规则: <?xml version="1.0" encoding="UTF-8"?> <project name="custom_rules"> <target name="-compile" depends="-build-setup, -pre-build, -code-gen, -pre-compile"
<?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找不到符号类活动_
注意:正在启动AndroidAnnotations注释处理
:类型“[dummy1343240015623]”的未关闭文件;这些类型将不进行注释处理
处理似乎是在找不到活动“”之后开始的。错误还是故意的
所有的文件都在\libs中的正确位置api.jar、\compile libs中的.jar,在我的一生中都无法找出任何东西
编辑:到处乱翻了一下。在AndroidAnnotations生成的源文件夹中添加了一个新属性,在编译期间将其添加到javac src路径中,但仍然没有成功。这是我第一次运行ant脚本,它告诉我它找不到任何生成的类,第二次,它告诉我我有它们的副本,所有这些仍然给我类型的未加密文件。。。错误消息。因此,这里是可能的解决方案。我需要对javac编译本身添加一些编辑,并在上面添加delete和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>
所以,这里可能的解决方案。我需要对javac编译本身添加一些编辑,并在上面添加delete和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>