有没有人知道是否有可能从AndroidManifest.xml获取变量用于ant使用?
具体来说,我试图让versionCode,versionName和packageName出莫名其妙.
提前致谢.
这似乎太麻烦了,而且由于Maven很容易解决这个问题,我现在已经放弃了快速解决方案的可能性.
也许有一个Android专用解决方案,我不知道,但除此之外你可以将android清单文件视为任何其他xml文件 - >所以你需要的是一个ant任务,用于解析xml文件并从中检索值.
在java中编写自定义ant任务并不是一门火箭科学 - 你已经可以尝试使用它了.
请参阅:如何通过ANT解析xml
所以在你的情况下它会像(使用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>
Run Code Online (Sandbox Code Playgroud)
编辑:
如果你想在你的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" />
Run Code Online (Sandbox Code Playgroud)
稍后使用一些行的示例:
<xpath input="AndroidManifest.xml"
expression="/manifest/application/@android:hasCode"
output="manifest.hasCode" default="true"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3110 次 |
| 最近记录: |