<?xml version="1.0" encoding="UTF-8"?>
name="MainProject"
basedir="."
default="main" >
<!--
The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems.
-->
<property file="local.properties" />
<property
name="apk-name"
value="product" />
<property
name="apk-version"
value="latest" />
<property
name="apk-market"
value="dev" />
<!-- android.jar路径 -->
<property
name="android-jar"
value="/opt/adt/sdk/platforms/android-19/android.jar" />
<!-- android.tools路径 -->
<property
name="android.tools"
value="/opt/adt/sdk/tools" />
<!-- 初始化 目录文件 -->
<target name="init" >
<echo>
start initing ...
</echo>
<mkdir dir="out" />
<delete>
<fileset dir="out" >
</fileset>
</delete>
<mkdir dir="gen" />
<delete>
<fileset dir="gen" >
</fileset>
</delete>
<mkdir dir="assets" />
<delete>
<fileset dir="assets" >
</fileset>
</delete>
<mkdir dir="bin/classes" />
<delete>
<fileset dir="bin/classes" >
</fileset>
</delete>
<!-- ${apk-version}表示版本,后面会详细讲到 -->
<mkdir dir="build/${apk-version}" />
<echo>
finish initing.
</echo>
</target>
<target
name="main"
depends="init" >
<echo>
generating R.java for project to dir gen (using aapt) ...
</echo>
<exec executable="aapt" failonerror="true" >
<arg value="package" /> <!-- package表示打包 -->
<arg value="-m" /> <!-- m,J,gen表示创建包名的目录和R.java到gen目录下 -->
<arg value="-J" />
<arg value="gen" />
<arg value="-M" /> <!-- M指定AndroidManifest.xml文件 -->
<arg value="AndroidManifest.xml" />
<arg value="-S" /> <!-- S指定res目录,生成对应的ID,可多个 -->
<arg value="res" />
<arg value="-S" />
<arg value="../SlideMenu/res" />
<arg value="-I" /> <!-- I指定android包的位置 -->
<arg value="${android-jar}" />
<arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错 -->
</exec>
generating R.java for library to dir gen (using aapt)
<exec executable="aapt" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="--non-constant-id" />
<arg value="--auto-add-overlay" />
<arg value="-J" />
<arg value="gen" />
<arg value="-M" />
<arg value="../SlideMenu/AndroidManifest.xml" />
<arg value="-S" />
<arg value="res" />
<arg value="-S" />
<arg value="../SlideMenu/res" />
<arg value="-I" />
<arg value="${android-jar}" />
</exec>
<!-- 第三方jar包需要引用,用于辅助编译 -->
<path id="project.libs" >
<fileset dir="libs" >
<include name="*.jar" />
</fileset>
</path>
<echo>
compiling java files to class files (include R.java, library and the third-party jars) ...
</echo>
<!-- 生成的class文件全部保存到bin/classes目录下 -->
<javac
bootclasspath="${android-jar}"
destdir="bin/classes" >
<src path="../RemoteHelpe/src" />
<src path="../SlideMenu/src" />
<src path="src" />
<src path="gen" />
<classpath refid="project.libs" />
</javac>
<echo>
packaging class files (include the third-party jars) to calsses.dex ...
</echo>
<exec executable="dx" >
<arg value="--dex" />
<arg value="--output=out/classes.dex" /> <!-- 输出 -->
<arg value="bin/classes" /> <!-- classes文件位置 -->
<arg value="libs" /> <!-- 把libs下所有jar打包 -->
</exec>
<echo>
packaging resource (include res, assets, AndroidManifest.xml, etc.) to res.zip ...
</echo>
<!-- 打包资源文件 -->
<exec executable="aapt" >
<arg value="package" />
<arg value="-f" /> <!-- 资源覆盖重写 -->
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="res" />
<arg value="-S" /> <!-- lib资源文件的res -->
<arg value="../SlideMenu/res" />
<arg value="-A" /> <!-- 与R.java不同,需要asset目录也打包 -->
<arg value="assets" />
<arg value="-I" />
<arg value="${android-jar}" />
<arg value="-F" /> <!-- 输出资源压缩包 -->
<arg value="out/res.zip" />
<arg value="--auto-add-overlay" />
</exec>
<echo>
building unsigned.apk ...
</echo>
<java
classname="com.android.sdklib.build.ApkBuilderMain"
classpath="${android.tools}/lib/sdklib.jar" >
<arg value="out/unsigned.apk" />
<arg value="-u" />
<arg value="-z" />
<arg value="out/res.zip" />
<arg value="-f" />
<arg value="out/classes.dex" />
<arg value="-nf" />
<arg value="./libs" />
</java>
<!-- 生成apk文件到build目录下 -->
<!-- 其中${apk-version/name/market}用户多渠道打包,后面会讲到 -->
<echo>
signing the unsigned apk to final product apk ...
</echo>
<exec executable="java" >
<arg value="-jar" />
<arg value="../sign/signapk.jar" />
<arg value="../sign/testkey.x509.pem" />
<arg value="../sign/testkey.pk8" />
<arg value="out/unsigned.apk" />
<arg value="hello.apk" />
</exec>
<echo>
done.
</echo>
</target>
其实我现在的主要问题是:在打包jar库资源文件的时候,由于我的主程序中的一个layout文件引用了xmlns:wison="http://schemas.android.com/apk/res/com.main.project" 的说明;导致了 res/layout/audio.xml:260: error: No resource identifier found for attribute 'switchMinHeight' in package 'com.main.project' 的问题;
appt库资源文件的时候出的这个错。
请问大侠们怎么解决这个问题呢?