Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未使用Ant编译的Android注释_Java_Android_Ant_Android Annotations - Fatal编程技术网

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>