2

ここにリストされているすべての手順を実行した後、(Class)_ がまだ生成されていないことがわかりました。

カスタムルール:

<?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_ が見つからなかった後に処理が開始されるようです。エラーまたは意図したとおりですか?

すべてのファイルは正しい場所 ( \libs の api.jar 、 \compile-libs の .jar ) にあり、私の人生では何も理解できません。

編集済み:少し突っついてきました。propertyAndroidAnnotations で生成されたソース フォルダー用に新しく追加され、それをjavac srcパス中に追加しましたが-compile、まだ運がありません。antスクリプトを初めて実行すると、生成されたクラスが見つからないことがわかり、2回目は、それらすべての重複があることがわかります(それでもunclsed files for types...エラーメッセージが表示されます)。

4

1 に答える 1

0

だから、ここで可能な解決策。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>
于 2012-07-26T20:35:46.320 に答える