Sno*_*ire 9 ant android build aapt
我正在为Android构建系统开发一些Ant脚本,并且遇到了一个调用aapt的元素.我见过很多例子
exec executable ="$ {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>
Run Code Online (Sandbox Code Playgroud)
我想使用此元素重命名包,但找不到有关如何使用它的任何文档.有谁知道我能在哪里找到一些?
谢谢
我找不到任何东西,并最终使用以下似乎工作
<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>
Run Code Online (Sandbox Code Playgroud)
在Android SDK的新(呃)版本中,ant构建脚本以不同的方式工作.它不是通过元素直接调用aapt命令,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
Run Code Online (Sandbox Code Playgroud)
据我所知,没有办法通过这个新的构建任务提供通用的aapt选项.这似乎只能通过使用SDK的build.xml的修改副本以及aapt调用的替换来实现.
如果有人知道更好的解决方案,我也很乐意阅读;-)
编辑:在更新版本的SDK中,再次引入了重命名包:
Aapt Option --rename-manifest-package package-name
Ant Name manifestpackage
Type attribute (String)
Run Code Online (Sandbox Code Playgroud)
我非常怀疑除了源代码之外还有任何文档。
| 归档时间: |
|
| 查看次数: |
7550 次 |
| 最近记录: |