1

我想用 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
4

1 回答 1

0

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

页面描述了您需要哪些软件包以及如何自行设置。

于 2012-06-19T20:24:00.903 回答