Ant脚本中一个apt元素的文档



我正在为Android构建系统编写一些Ant脚本,并且遇到了一个称为aapt的元素。我见过很多使用

的例子

执行可执行= " $ {aapt} "

但是来自main_rules.xml文件的那些使用不同的格式

    <aapt executable="${aapt}"
            command="package"
            debug="${build.packaging.debug}"
            manifest="AndroidManifest.xml"
            assets="${asset.absolute.dir}"
            androidjar="${android.jar}"
            apkfolder="${out.absolute.dir}"
            resourcefilename="${resource.package.file.name}"
            resourcefilter="${aapt.resource.filter}">
        <res path="${resource.absolute.dir}" />
        <!-- <nocompress /> forces no compression on any files in assets or res/raw -->
        <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw -->
    </aapt>

我想使用此元素重命名包,但找不到有关如何使用它的任何文档。有人知道在哪里能找到吗?

谢谢

我找不到任何东西,最终使用以下似乎有效的

    <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="${out.absolute.dir}" />
      <arg value="-F" />
      <arg path="${out.absolute.dir}/${resource.package.file.name}" />
      <arg value="-S" />
      <arg path="res" />
      <arg value="--rename-manifest-package" />
      <arg value="my.new.package.name" />
    </exec>

在Android SDK的新(er)版本中,ant构建脚本以不同的方式工作。它不通过exec元素直接调用aapt命令,而是定义一个合适的任务。后者由java类com.android.ant.AaptExecTask实现。该类只提供aapt命令行选项的一个子集。

您可以在源代码java文档中找到aapt命令行选项和ant参数之间映射的简要描述:

Aapt Option             Ant Name        Type
---------------------------------------------------------------------------------
path to aapt            executable      attribute (Path)
command                 command         attribute (String)
-v                      verbose         attribute (boolean)
-f                      force           attribute (boolean)
-M AndroidManifest.xml  manifest        attribute (Path)
-I base-package         androidjar      attribute (Path)
-A asset-source-dir     assets          attribute (Path
-S resource-sources     <res path="">   nested element(s)
                                        with attribute (Path)
-0 extension            <nocompress extension="">  nested element(s)
                        <nocompress>               with attribute (String)
-F apk-file             apkfolder                  attribute (Path)  
                        outfolder                  attribute (Path) deprecated
                        apkbasename                attribute (String)
                        basename                   attribute (String) deprecated
-J R-file-dir       rfolder         attribute (Path)
                                    -m always enabled

据我所知,没有办法通过这个新的构建任务提供通用的aapt选项。这似乎只能通过获取SDK的build.xml的修改副本来实现

如果有人知道更好的解决方案,我也很乐意阅读;-)

编辑:在更新的SDK版本中再次引入了重命名包:

Aapt Option   --rename-manifest-package package-name 
Ant Name      manifestpackage
Type          attribute (String)

我非常怀疑除了源代码之外还有什么文档。

相关内容

  • 没有找到相关文章

最新更新