我想将一个应用程序构建为2个版本,一个付费,一个免费,我知道aapt有一个选项"--rename-manifest-package"应该有帮助,但我不知道如何在build.xml中使用它.我找到了可以修改的2个地方:
<!-- first -->
<target name="-resource-src" depends="-dirs">
<echo>Generating R.java / Manifest.java from the resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg line="${v.option}" />
<arg value="-m" />
<arg value="-J" />
<arg path="${gen.absolute.dir}" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-S" />
<arg path="${resource.absolute.dir}" />
<arg value="-I" />
<arg path="${android.jar}" />
</exec>
</target>
<!-- sencod -->
<target name="-package-resources">
<echo>Packaging resources</echo>
<aaptexec executable="${aapt}"
command="package"
manifest="AndroidManifest.xml"
resources="${resource.absolute.dir}"
assets="${asset.absolute.dir}"
androidjar="${android.jar}"
outfolder="${out.absolute.dir}"
basename="${ant.project.name}" >
</aaptexec>
</target>
Run Code Online (Sandbox Code Playgroud)
这篇文章(http://blog.uncommons.org/2010/07/19/building-two-versions-of-the-same-android-app/)说我应该在"--rename-manifest-package"中添加"第二名,但如何?
选项--rename-manifest-package不能与aaptexec ant任务一起使用.这是一个需要直接进入aapt可执行文件的选项,就像这样;
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-v" />
<arg value="--version-code" />
<arg value="${version.code}" />
<arg value="--debug-mode" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-A" />
<arg path="${asset.absolute.dir}" />
<arg value="-I" />
<arg path="${android.jar}" />
<arg value="-F" />
<arg path="${out.absolute.dir}/${resource.package.file.name}" />
<arg value="-S" />
<arg path="${resource.absolute.dir}" />
<arg value="--rename-manifest-package" />
<arg value="com.example.pro" />
</exec>
Run Code Online (Sandbox Code Playgroud)
我发现无法编辑实际改变Eclipse构建方式的文件.所以我将这段代码放在build.xml中,将它放在项目根目录中,然后通过键入来从控制台构建;
ant debug
Run Code Online (Sandbox Code Playgroud)
如果您依赖任何库,他们也需要进入包装.查看default.properties文件,您将看到对lib的引用.然后将其添加到上面的规则中,就像这样;
<arg value="-S" />
<arg path="${android.library.reference.1}/res" />
Run Code Online (Sandbox Code Playgroud)
它开始越来越像一个可以打破任何平台SDK更新的黑客攻击.
| 归档时间: |
|
| 查看次数: |
9681 次 |
| 最近记录: |