【问题标题】:`ant` is looking for `aapt` in project directory?`ant` 正在项目目录中寻找 `aapt`?
【发布时间】:2015-09-03 21:41:10
【问题描述】:

我最近遇到了一个已经运行了几个月的构建过程的问题 - 自上次工作构建以来我可能已经更新了 Android 构建工具,但我不确定。

无论如何

ant -Dsdk.dir=$ANDROID_HOME -Djava.source=7 -Djava.target=7 clean release

失败并显示以下消息:

/home/dmta/development/android-sdk-linux/tools/ant/build.xml:694: Execute failed: java.io.IOException:
Cannot run program "/home/dmta/EclipseProjects/MyProject/Hawk/${aapt}"
(in directory "/home/dmta/EclipseProjects/MyProject/Hawk"): error=2,
No such file or directory

Hawk 是我正在使用的库项目。

这里有什么问题?

我可以从 Eclipse 构建程序,但我需要使用 ant build for proguard。

【问题讨论】:

    标签: android ant build aapt


    【解决方案1】:

    AAPt 位置在最新更新中已更改。将 lib/dx 和 aapt :这两个文件复制回平台工具。 如果还没有,也可以尝试添加工具路径,例如:

    <!-- tools location -->
    <property name="android.tools.dir" location="${sdk.dir}/tools" />
    <property name="android.platform.tools.dir" location="${sdk.dir}/platform-tools" />
    <property name="android.buildtools.dir" location="${sdk.dir}/build-tools/22.0.1" />
    <condition property="exe" value=".exe" else="">    <os family="windows" />    </condition>
    <condition property="bat" value=".bat" else="">    <os family="windows" />    </condition>
    <property name="adb" location="${android.platform.tools.dir}/adb${exe}" />
    <property name="lint" location="${android.tools.dir}/lint${bat}" />
    <property name="zipalign" location="${android.buildtools.dir}/zipalign${exe}" />
    <property name="aidl" location="${android.platform.tools.dir}/aidl${exe}" />
    <property name="aapt" location="${android.buildtools.dir}/aapt${exe}" />
    <property name="dx" location="${android.buildtools.dir}/dx${bat}" />
    <property name="renderscript" location="${android.buildtools.dir}/llvm-rs-cc${exe}"/>
    <property name="lint" location="${android.tools.dir}/lint${bat}" />
    

    【讨论】:

    • 谢谢,但我不确定应该将哪些文件从哪里复制到哪里。我的 SDK 东西在~/development/android-sdk-linux/,即。 e.那是一个名为platform-tools 的文件夹所在的位置。但是旧版本会在哪里呢?
    • 另外,您显示的是什么 XML 文件 - 我的项目的 build.xml 或 ` ` 被所有其他的导入?
    【解决方案2】:

    在 S P 的初步回答的帮助下,我得以完成这项工作。

    值得注意的是,我的问题,或者至少问题标题具有误导性:起初我以为 ant 实际上是在项目文件夹中寻找可执行文件 aapt

    然而,仔细观察它实际上是在寻找${aapt}。这表明 ant 正在尝试使用名为“aapt”的属性的值,但该属性并未设置。因此,它不会构建任何合理的可执行路径,而是将名称附加到它的当前工作目录 - 或类似的东西。

    无论如何,我只需要将以下行插入我的~/development/android-sdk-linux/tools/ant/build.xml 文件:

    <property name="android.buildtools.dir" location="${sdk.dir}/build-tools/22.0.1" />
    <property name="aapt" location="${android.buildtools.dir}/aapt" />
    <property name="aidl" location="${android.buildtools.dir}/aidl" />
    <property name="dx" location="${android.buildtools.dir}/dx" />
    <property name="zipalign" location="${android.buildtools.dir}/zipalign" />
    

    那是因为我一告诉 ant 在哪里可以找到 aapt,它就抱怨 aidldxzipalign

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 2016-08-22
      • 2020-05-26
      • 2017-04-12
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多