gpt4 book ai didi

java - ant中使用AndroidManifest.xml版本代码

转载 作者:太空宇宙 更新时间:2023-11-03 12:11:05 25 4
gpt4 key购买 nike

有谁知道是否可以从 AndroidManifest.xml 中获取变量供 ant 使用

具体来说,我试图以某种方式获取 versionCodeversionNamepackageName

提前致谢。


结论

看来这太麻烦了,而且这个问题用Maven很容易解决,所以我暂时放弃了快速解决的可能性。

最佳答案

也许有一个 android 专用解决方案,我不知道,但除此之外,您可以将 android list 文件视为任何其他 xml 文件 -> 所以您只需要一个 ant 任务来解析 xml 文件并从中检索值.

因为在 Java 中编写自定义 ant 任务不是火箭科学 - 已经有一些您可以尝试使用的东西。

参见:How to parse a xml by ANT

所以在你的情况下它会是这样的(使用 http://www.oopsconsultancy.com/software/xmltask/ ):

<target name="retrieveFromManifest" desciption="retrieveFromManifest">
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
<xmltask source="${pathToAndroidManifestFile}">
<copy path="/manifest/@android:versionCode" property="androidVersionCode"/>
<copy path="/manifest/@android:versionName" property="androidVersionName"/>
<copy path="/manifest/@package" property="androidPackage"/>
</xmltask>
<echo message="Version code: ${androidVersionCode}" />
<echo message="Version name: ${androidVersionName}" />
<echo message="package: ${androidPackage}" />
</target>

编辑:

如果您考虑在您的 android 项目的 build.xml 中解析它,那么您将拥有“开箱即用”的 xpath 任务。任何为 android 项目自动生成的构建文件都会导入全局 sdk 的构建文件 <import file="${sdk.dir}/tools/ant/build.xml" /> ,其中你有:

<taskdef name="xpath"
classname="com.android.ant.XPathTask"
classpathref="android.antlibs" />

以及稍后的示例用法:

<xpath input="AndroidManifest.xml" 
expression="/manifest/application/@android:hasCode"
output="manifest.hasCode" default="true"/>

关于java - ant中使用AndroidManifest.xml版本代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10181394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com