java - Ant 无法导入 R.java

标签 java android eclipse ant

我正在使用 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>

最佳答案

您的脚本不包含 {gen} 路径作为编译源。只需添加到 <javac> :

   <src path="../src"/>
   <src path="../gen"/>

关于java - Ant 无法导入 R.java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8990724/

相关文章:

java - 我如何在java代码中修改weka中的tfidf矩阵?

android - 在不使用服务的情况下隐藏应用程序(或在后台运行)

java - Android OpenGL ES 1.x 中绘制临时对象的最佳方式

java - 如何在 java/android 中重复执行任务?

Eclipse 安全存储

java - 如何正确使用Class.cast()?

java - 如何使用 Java 和 Spring 更改计划任务中的值

Java循环异常

android - 如何在非相机应用程序中使用 Android 相机 API?

java - 如何解决启动 Web 连接器 Jboss 时出错的问题?