2014-9-19阅读78 评论0
1、 [aapt] invalid resource directory name: E:\workspace\test\bin\res/crunch
将C:\android-sdk\tools\ant下边的build.xml文件里的<property name="aapt.ignore.assets" value="crunch" />写为这个
[aapt] invalid resource directory name: E:\workspace\test\bin\res/bc
将C:\android-sdk\tools\ant下边的build.xml文件里的<property name="aapt.ignore.assets" value="crunch:bc" />写为这个
2、* 使用官方sdk提供的build.xml(推荐)
通过android update命令更新工程的引用和项目的build.xml等相关文件,如果没有build.xml,则会自动生成build.xml
语法:android update project -n test -t 17 -p D:\workspace\java\test
参数解释:
-n name 工程名字
-t target api level
-p path 工程路径
生成的build.xml将会指向SDK目录下的build.xml
如果项目为多工程,则每个项目均运行android update project, 这时可以通过批量命令脚本(windows为bat, linux为shell)运行
3、如果将sdk里边的build.xml放入工程里边引入方法 <import file="${sdk.dir}/tools/ant/build.xml" /> 更改为<import file="sdk_build.xml" />
4、ant打包错误:非法字符
出错内容是:
*.java:1: 非法字符: \65279
[javac] package com.*.*;
[javac] ^
[javac] 1 错误
对于这个错误,我一看就下意识的认为是文件的第一行有隐藏字符。于是把第一行删掉重新添加上,结果依然报同样的错。
后面上网看了,原来是文件编码问题。这一个java文件的编码格式是UTF-8 BOM格式的。其它源码的编码格式都正常。很奇怪的说。
因为是在mac机器上跑,没找到像windows上的notepad++之类的比较好用的可以转编码的文本编辑器。所以就通过在eclipse中修改文件编码的方式来改了,具体如下:
先在eclipse的 project explorer中选中这个java文件,在右键菜单中选中“properties”,在弹出框中,将文件的编码“text encoding”更改为ISO-8859-1,这样,源码文件的头部的隐藏字节马上显示成乱码就出来了。把乱码删掉之后,重新将文件编码改为UTF-8即可。
对于非法字母警告可以在build文件中做添加下面语句
<target name="-compile" depends="-pre-build, -build-setup, -code-gen, -pre-compile">
<do-only-if-manifest-hasCode elseText="hasCode = false. Skipping...">
<!-- merge the project's own classpath and the tested project's classpath -->
<path id="project.javac.classpath">
<path refid="project.all.jars.path" />
<path refid="tested.project.classpath" />
<path path="${java.compiler.classpath}" />
</path>
<javac encoding="${java.encoding}"
source="${java.source}" target="${java.target}"
debug="true" extdirs="" includeantruntime="false"
destdir="${out.classes.absolute.dir}"
bootclasspathref="project.target.class.path"
verbose="${verbose}"
classpathref="project.javac.classpath"
fork="${need.javac.fork}">
<src path="${source.absolute.dir}" />
<src path="${gen.absolute.dir}" />
<span style="color:#ff6666;"><compilerarg value="-Xlint:unchecked"/> </span>
<compilerarg line="${java.compilerargs}" />
</javac>
5、Missing attribute buildToolsFolder
6、Missing attribute renderscriptSupportOutOut
7、dependency doesn’ t support the “renderscriptSupportOutOtu” attribute
8、RenderScriptTask's 'buildToolsRoot' is Required
9、RenderScriptTask's 'rsObjFolder' is Required
RenderScriptTask's 'libsFolder' is Required
10、 代签名的ant 打包
<target name="-release-prompt-for-password" if="has.keystore" unless="has.password">
<!-- Gets passwords -->
<property name="key.store.password" value="XXX" />
<property name="key.alias.password" value="XXX" />
</target>
11、Jar mismatch!Fix your dependencies
有两个jar冲突,比如 android-support-v4.jar 工程里边有两个,或者把工程里边的用sdk里边的替换掉
12、ant打包加混淆
在ant.properties中加入
key.alias=用户名
key.store=密钥文件.keystore
password=密码
proguard.enabled=true
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt