我想将一个应用程序构建为两个版本,一个付费,一个免费,
而且我知道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>

本文(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>

我发现没有办法编辑实际上改变Eclipse构建方式的文件。因此,我将这段代码放在build.xml中,将其放在项目根目录中,然后通过键入从控制台进行构建;
ant debug

而且,如果您依赖于任何库,那么它们也都需要放入包装中。查看您的default.properties文件,您将看到对lib的引用。然后像这样将其添加到上面的规则中;
<arg value="-S" />
<arg path="${android.library.reference.1}/res" />

它开始越来越像一种可以随任何平台SDK更新而中断的黑客。

10-08 07:06
查看更多