定制的Andr​​oid build.xml文件的重命名清单包 [英] Custom Android build.xml for rename manifest package

查看:135
本文介绍了定制的Andr​​oid build.xml文件的重命名清单包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想建立一个应用程序到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;
 

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

解决方案

选项--rename舱单包不能与aaptexec Ant任务使用

。这是需要直奔AAPT的可执行文件,像这样的选项;

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

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

 蚂蚁调试
 

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

 &LT; ARG值= -  S/&GT;
&LT; ARG PATH =$ {android.library.reference.1} / RES/&GT;
 

它开始感觉越来越像一个黑客可以与任何平台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.

这篇关于定制的Andr​​oid build.xml文件的重命名清单包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆