将 Android 系统库从 Eclipse 复制到 Ant

发布于 2024-11-13 12:10:36 字数 1163 浏览 2 评论 0原文

我有一个在 Ant 中构建的 Android 项目,但我陷入了系统库的困境:在 Eclipse 中,我定义了两个系统库,每个库都包含一些 jar,然后将其包含在我的项目中。我尝试将这些 jar 文件复制到使用它们的项目的 libs 目录中,但在使用 ant 编译时仍然遇到相同的错误。

使用系统库和在 libs 文件夹中包含 jar 之间有区别吗?我是否缺少一些东西 - 也许是在 ant 本身中定义系统库的某种方法?

更新:

执行 antcompile 时,main_rules.xml 中的以下代码失败

    <!-- Generates the R.java file for this project's resources. -->
<target name="-resource-src" depends="-dirs">
    <if condition="${manifest.hasCode}">
        <then>
            <echo>Generating R.java / Manifest.java from the resources...</echo>
            <aapt executable="${aapt}"
                    command="package"
                    verbose="${verbose}"
                    manifest="AndroidManifest.xml"
                    androidjar="${android.jar}"
                    rfolder="${gen.absolute.dir}">
                <res path="${resource.absolute.dir}" />
            </aapt>
        </then>
        <else>
            <echo>hasCode = false. Skipping...</echo>
        </else>
    </if>
</target>

我已将库添加到编译目标 javac 任务,但这似乎也不起作用。

I have a Android project which I'm building in Ant and I'm stuck on system libraries: In Eclipse I've defined two system libraries, each consisting of a few jars, which I then include in my projects. I've tried copying these jar files to the libs dir of the projects which use them and I'm still getting the same errors when compiling with ant.

Is there a difference between using a system library and including jars in the libs folder? Is there something I'm missing - maybe some way of defining a system library in ant itself?

UPDATE:

It's failing on the following code in main_rules.xml when executing ant compile

    <!-- Generates the R.java file for this project's resources. -->
<target name="-resource-src" depends="-dirs">
    <if condition="${manifest.hasCode}">
        <then>
            <echo>Generating R.java / Manifest.java from the resources...</echo>
            <aapt executable="${aapt}"
                    command="package"
                    verbose="${verbose}"
                    manifest="AndroidManifest.xml"
                    androidjar="${android.jar}"
                    rfolder="${gen.absolute.dir}">
                <res path="${resource.absolute.dir}" />
            </aapt>
        </then>
        <else>
            <echo>hasCode = false. Skipping...</echo>
        </else>
    </if>
</target>

I have added the libraries to the compile target javac task but this also doesn't seem to work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如果没有 2024-11-20 12:10:36

在 Ant 中,您通常需要显式地将 jar 放在类路径中。仅将它们放入 lib 目录中并不会自动将它们添加到类路径中。

在 Ant 构建文件中查找 javac 的执行位置并查看所使用的类路径。您将需要更新此类路径以包含每个 jar。

In Ant, you generally need to put jars on classpath explicitly. They are not automatically added to classpath just by putting them in a lib directory.

Find where javac is done in your Ant buildfile and look at the classpath used. You will need to update this classpath to include each jar.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文