与ant建立Android的apk

时间:2012-06-19 18:40:43

标签: android windows ant cyanogenmod

我想使用ant编译cm9主题,所以我在示例主题中给出了这个代码:

<?xml version="1.0" encoding="UTF-8"?>
<project name="TemplateTheme" default="help">

    <!-- ADD YOUR ANDROID SDK PATH TO THIS FILE -->
    <loadproperties srcFile="local.properties" />

    <!-- The ant.properties file can be created by you. It is only edited by the
         'android' tool to add properties to it.
         This is the place to change some Ant specific build properties.
         Here are some properties you may want to change/update:

         source.dir
             The name of the source directory. Default is 'src'.
         out.dir
             The name of the output directory. Default is 'bin'.

         For other overridable properties, look at the beginning of the rules
         files in the SDK, at tools/ant/build.xml

         Properties related to the SDK location or the project target should
         be updated using the 'android' tool with the 'update' action.

         This file is an integral part of the build system for your
         application and should be checked into Version Control Systems.

         -->
    <property file="ant.properties" />

    <!-- DON'T TOUCH THIS ONE -->
    <loadproperties srcFile="default.properties" />
    <!-- ADD YOUR KEYSTORE PROPERTIES HERE -->
    <loadproperties srcFile="key.properties" />

    <!-- quick check on sdk.dir -->
    <fail
            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
            unless="sdk.dir"
    />


    <!-- Import the actual build file.

         To customize existing targets, there are two options:
         - Customize only one target:
             - copy/paste the target into this file, *before* the
               <import> task.
             - customize it to your needs.
         - Customize the whole content of build.xml
             - copy/paste the content of the rules files (minus the top node)
               into this file, replacing the <import> task.
             - customize to your needs.

         ***********************
         ****** IMPORTANT ******
         ***********************
         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
         in order to avoid having your file be overridden by tools such as "android update project"
    -->
    <!-- version-tag: 1 -->
    <import file="${sdk.dir}/tools/ant/build.xml" />

    <target name="-package-resources">
        <echo>Optimizing theme resources</echo>
        <exec executable="./prepare-resources" failonerror="true" /> 
        <echo>Packaging theme resources</echo>
        <exec executable="./aapt" failonerror="true">
          <arg value="package" />
          <arg value="-f" />
          <arg value="-M" />
          <arg path="AndroidManifest.xml" />
          <arg value="-I" />
          <arg path="${android.jar}" />
          <arg value="-F" />
          <arg path="${out.absolute.dir}/${resource.package.file.name}" />
          <arg value="-S" />
          <arg path="res-final" />
          <arg value="-x" />
          <arg value="10" />
        </exec>
        <echo>Cleaning up resources</echo>
        <exec executable="./prepare-resources" failonerror="true">
          <arg value="clean" />
        </exec>
    </target>



</project>

但是当我执行时我得到了错误:

无法运行程序“。\ prepare-resources”:创建进程错误= 193,%1不是有效的win32应用程序

准备资源:

#!/bin/sh

if [ "$*" == "clean" ]; then
  rm -rf res-final/
else
  rm -rf res-final/
  rsync -a res/ res-final/
  echo "Themeing quasi-clone packages..."
  rsync res-final/xml/com_cyanogenmod_trebuchet.xml res-final/xml/com_anddoes_launcher.xml
  rsync res-final/xml/com_cyanogenmod_trebuchet.xml res-final/xml/com_teslacoilsw_launcher.xml
  echo "Running pngcrush..."
  for png in `find res-final/ -type f -name \*.png`; do
      pngcrush -q $png $png.out 2>/dev/null >/dev/null && mv $png.out $png
  done
fi

1 个答案:

答案 0 :(得分:0)

prepare-resources"是一个shell脚本,不是可执行文件。为了能够执行它,安装cygwin,这是一个类似UNIX的环境,包括许多软件,包括能够执行脚本的shell。

This页面介绍了您需要的软件包以及如何自行设置。