将属性传递给Android库项目构建文件

将属性传递给Android库项目构建文件,第1张

概述我有一个 Android应用程序项目,分为免费版和付费版.两个项目共有的所有内容都存在于名为“core”的Android库项目中.然后我有付费和免费版本的实际Android应用程序项目. 我正在使用Ant脚本来构建这两个APK.付费版本设置一个属性,告诉付费版本正在构建的“核心”项目.免费版本告诉核心项目免费版本正在构建. 在谷歌决定发布ADT 22之前,这曾经完全正常.现在,“核心”项目不再能够 我有一个 Android应用程序项目,分为免费版和付费版.两个项目共有的所有内容都存在于名为“core”的AndroID库项目中.然后我有付费和免费版本的实际AndroID应用程序项目.

我正在使用Ant脚本来构建这两个APK.付费版本设置一个属性,告诉付费版本正在构建的“核心”项目.免费版本告诉核心项目免费版本正在构建.

在谷歌决定发布ADT 22之前,这曾经完全正常.现在,“核心”项目不再能够获得这些构建属性.

我怀疑库项目现在是在一个单独的Ant构建环境/流程中构建的.

所以这是我的问题:如何在app项目的build.xml文件中定义引用的AndroID库项目的属性?如何将属性传递给这些库项目构建?

SDK的build.xml文件中实际编译的库项目在哪里?我猜这将是适合调查的地方.

谢谢你的时间.

解决方法 编辑澄清

您必须从AndroID SDK创建原始build.xml文件的修改副本(请参阅SDK-Folder / tools / ant),并且当Google通过合并差异来发布ADT更新时,它也会不时地保持最新(并保持自己的修改当然).

build.xml文件使用< subant>构建库项目.任务,它基本上启动一个单独的构建环境,不会自动查看调用范围的任何属性(这将是应用程序项目的构建环境).

但是,在该子标记内,您可以使用< propertyset>将调用方范围的属​​性导出到库的构建XML.标签.在build.xml副本中查找以下代码块并进行修改,如下所示:

....            <echo level="info">Building librarIEs with '${project.librarIEs.target}'...</echo>            <!-- no need to build the deps as we have already                 the full List of librarIEs -->            <subant failonerror="true" buildpathref="project.library.folder.path" antfile="build.xml">                <!-- *** ADD THIS: *** -->                <propertyset ID="project.library.buildargs">                    <propertyref prefix="project.library.buildargs" />                </propertyset>                <target name="nodeps" />                <target name="${project.librarIEs.target}" />                <property name="emma.coverage.absolute.file" location="${out.absolute.dir}/coverage.em" />            </subant>....

上面的示例使所有app项目build.xml属性都以project.library.buildargs为前缀.对所有引用的AndroID库构建脚本可见.

总结

以上是内存溢出为你收集整理的将属性传递给Android库项目构建文件全部内容,希望文章能够帮你解决将属性传递给Android库项目构建文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128888.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存