定制的Andr​​oid build.xml文件的重命名清单包清单、重命名、文件、oid

由网友(∴专业三秒男∵)分享简介:我想建立一个应用程序到2.0版本,一是付费,一个自由,我知道AAPT有一个选项--rename舱单包应该帮助,但我不知道如何使用它的build.xml文件。我发现2个地方,我可以修改:<! - 第 - ><目标名称= - 资源SRC取决于= - 迪尔斯><回声>生成R.java...

我想建立一个应用程序到2.0版本,一是付费,一个自由, 我知道AAPT有一个选项--rename舱单包应该帮助,但我不知道如何使用它的build.xml文件。 我发现2个地方,我可以修改:

 <! - 第 - >
 <目标名称= - 资源SRC取决于= - 迪尔斯>
    <回声>生成R.java / Manifest.java从资源...< /回声>
    < EXEC可执行=$ {} AAPTfailonerror =真正的>
        < ARG值=包/>
        < ARG行=$ {v.option}/>
        < ARG值= -  M/>
        < ARG值= -  J/>
        < ARG PATH =$ {gen.absolute.dir}/>
        < ARG值= -  M/>
        < ARG路径=AndroidManifest.xml中/>
        < ARG值= -  S/>
        < ARG PATH =$ {resource.absolute.dir}/>
        < ARG值= - 我/>
        < ARG PATH =$ {}的android.jar/>
    < / EXEC>
< /目标和GT;



 &所述;! -  sencod  - >
 <目标名称= - 包 - 资源>
    <回声>包装资源< /回声>
     < aaptexec可执行=$ {} AAPT
            命令=包
            清单=AndroidManifest.xml中
            资源=$ {resource.absolute.dir}
            资产=$ {asset.absolute.dir}
            androidjar =$ {}的android.jar
            outfolder =$ {out.absolute.dir}
    基名=$ {ant.project.name}>
< / aaptexec>
< /目标和GT;
 

这篇文章(http://blog.uncommons.org/2010/07/19/building-two-versions-of-the-same-android-app/ )说我应该加入--rename舱单包的第二位,但如何?

解决方案

选项--rename舱单包不能与aaptexec Ant任务使用。这是需要直奔AAPT的可执行文件,像这样的选项;

 < EXEC可执行=$ {} AAPTfailonerror =真正的>
  < ARG值=包/>
  < ARG值= -  F/>
  < ARG值= -  V/>
  < ARG值= - 版本 -  code/>
  < ARG值=$ {版本code}/>
  < ARG值= - 调试模式/>
  < ARG值= -  M/>
  < ARG路径=AndroidManifest.xml中/>
  < ARG值= -  A/>
  < ARG PATH =$ {asset.absolute.dir}/>
  < ARG值= - 我/>
  < ARG PATH =$ {}的android.jar/>
  < ARG值= -  F/>
  < ARG PATH =$ {out.absolute.dir} / $ {resource.package.file.name}/>
  < ARG值= -  S/>
  < ARG PATH =$ {resource.absolute.dir}/>
  < ARG值= - 重舱单包/>
  < ARG值=com.example.pro/>
< / EXEC>
 

我发现没有办法编辑,实际上改变Eclipse构建的方式文件。所以我把那块code在build.xml,把它放在项目的根,并通过键入从控制台建成;

 蚂蚁调试
 

如果你依赖于任何图书馆,他们需要进入包装也是如此。看着你的default.properties文件,你会看到参考库。然后添加到规则上面,像这样;

 < ARG值= -  S/>
< ARG PATH =$ {android.library.reference.1} / RES/>
 

它开始感觉越来越像一个黑客可以与任何平台SDK的更新打破。

I wanna build one app into 2 version, one paid, one free, and I know aapt have a option "--rename-manifest-package" should help, but I don't know How to use it in build.xml. I find 2 place I may modify:

 <!-- 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>

this article( http://blog.uncommons.org/2010/07/19/building-two-versions-of-the-same-android-app/ ) said I should adding "--rename-manifest-package" at the second place, but How?

解决方案

The option --rename-manifest-package cannot be used with the aaptexec ant task. It is an option that needs to go straight to the aapt executable, like this;

<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>

I found no way of editing a file that actually changes the way Eclipse builds. So I put that piece of code in the build.xml, put it in the project root, and built from the console by typing;

ant debug

And if you depend on any libraries, they need to go into the packaging as well. Look into your default.properties file and you'll see the reference to the lib. Then add that to the rule above, like this;

<arg value="-S" />
<arg path="${android.library.reference.1}/res" />

It starts to feel more and more like a hack that can break with any platform SDK update.

阅读全文

相关推荐

最新文章