2012-02-15 44 views

回答

4

我找到了我自己的問題的答案:

<path id="android.antlibs"> 
      <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" /> 
</path> 
<taskdef name="xpath" classname="com.android.ant.XPathTask" classpathref="android.antlibs" /> 
<xpath input="./AndroidManifest.xml" expression="/manifest/@android:versionName" output="manifest.versionName" /> 
<echo message="versionName = ${manifest.versionName}" /> 
+1

在我的情況下,該jar在$ {sdk.dir} /tools/lib/ant-tasks.jar :) – 2013-08-28 16:53:54

0

只需使用macrodef從https://stackoverflow.com/a/5318044/130683並使其適應您的需求,意味着類似:

<macrodef name="mfgrep"> 
    <attribute name="jar"/> 
    <attribute name="key"/> 
    <attribute name="keysave"/> 
    <sequential> 
     <loadproperties> 
     <zipentry zipfile="@{jar}" name="META-INF/MANIFEST.MF"/> 
     </loadproperties> 
     <echo>@{key} => ${@{key}}</echo> 
     <property name="@{keysave}" value="${@{key}}"/> 
    </sequential> 
</macrodef> 

<!-- Grep a key from Manifest --> 
<mfgrep 
    jar="/home/gilreb/temp/test.jar" 
    key="Specification-Version" 
    keysave="foobar" 
/> 

以後使用屬性$ {FOOBAR}重命名文件:

<move file="myapp-release.apk" tofile="myapp-${foobar}.apk"/>