муравей не может импортировать R.java - PullRequest
3 голосов
/ 24 января 2012

Я работаю над файлом сборки ant (отдельно от eclipse), чтобы создать приложение для Android.

Мне нужно создать файл R.java. Однако я сделал это успешно, когда он пытается собрать мой проект из каталога src, он жалуется, что не может найти импортированный файл R.java. Я вижу его в каталоге gen ... но он все равно не будет построен.

Ошибка в цели build-project. Не удается сказать, что он "не может найти символ" , и он ссылается на файл R.java. И строка кода, на которую он указывает, является строкой импорта.

Вот мой xml файл, помогите, пожалуйста! Дайте мне знать, если вам нужна дополнительная информация.


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="ATB">

    <target name="init">
        <mkdir dir="../bin/classes"/>
        <copy includeemptydirs="false" todir="../bin/classes">
            <fileset dir="../src">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
        <copy includeemptydirs="false" todir="../bin/classes">
            <fileset dir="../gen">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <target depends="clean" name="cleanall"/>

    <target depends="resource-src,build-subprojects,build-project,jar" name="build"/>

    <target name="build-subprojects"/>

    <target depends="init" name="build-project">
        <echo message="${ant.project.name}: ${ant.file}"/>
        <javac debug="true" 
            debuglevel="${debuglevel}" 
            destdir="../bin/classes" 
            source="${source}" 
            target="${target}"
            executable="${env.JAVAHOME}/javac"
            fork="true"
        >
            <src path="../src"/>
            <classpath refid="ATB.classpath"/>
        </javac>
        <javac 
            debug="true" 
            debuglevel="${debuglevel}" 
            destdir="../bin/classes" 
            source="${source}" 
            target="${target}"
            executable="${env.JAVAHOME}/javac"
            fork="true"
        >
            <src path="../gen"/>
            <classpath refid="ATB.classpath"/>
        </javac>
    </target>

    <target depends="init" name="jar">
        <jar destfile="../bin/${ant.project.name}">
            <fileset dir="../src/">
            </fileset>
        </jar>
    </target>

    <target name="resource-src" description="Generate the R.java file for this project's resources.">
        <exec executable="${aapt}" failonerror="true">
            <arg value="package"/>
            <arg value="-f"/>
            <arg value="-v"/>
            <arg value="-M"/>
            <arg path="../AndroidManifest.xml"/>
            <arg value="-A"/>
            <arg path="../assets"/>
            <arg value="-I"/>
            <arg path="${android_jar}"/>
            <arg value="-m"/>
            <arg value="-J"/>
            <arg path="../gen"/> <!-- Create R.java in the gen directory -->
            <arg value="-S"/>
            <arg path="../res"/>
        </exec>
    </target>

    <target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects">
        <ant antfile="build.xml" dir="${Comms.location}" inheritAll="false" target="clean"/>
        <ant antfile="build.xml" dir="${Comms.location}" inheritAll="false" target="build"/>
    </target>

</project>

1 Ответ

6 голосов
/ 24 января 2012

Ваш сценарий не содержит путь {gen} в качестве источника компиляции. Просто добавьте в <javac>:

   <src path="../src"/>
   <src path="../gen"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...