1
1.1 对项目执行
android update project –target
或者
android update project -t
例如
android update project -t android-23 -p . (android版本23, 路径是当前目录).
1.2 对依赖项目执行
android update lib-project -t android-23 -p .
1.3 最后对项目执行
android update project -n name -t android-23 -p . –subprojects
name 是项目名字
2
上面的步骤导致项目生成2个文件, local.properties和build.xml, 每个依赖的项目也会生成这2个文件。
2.1
在项目根目录新建一个 ant.properties 文件.
下面是ant.properties的修改
如果需要修改编译使用到版本为java7,
java.source=7
java.target=7
如果需要加编译参数,
java.compilerargs=-Xlint:deprecation -Xlint:unchecked
(详细可以搜索build.xml中得javac标签)
2.2 添加签名设置
keytool -genkey -alias myalias -keyalg RSA -validity 20000 -keystore my.keystore
其中 myalias 是alias的名字,20000是有效时常20000天, my.keystore是keystore生成的文件名.
往ant.properties添加下面4行
key.store=my.keystore
key.alias=myalias
key.store.password=sanyun (可省)
key.alias.password=sanyun (可省)
后面不能有空格。
2.3 打包
在项目根目录下执行 ant release
3 可能出现的错误
invalid resource directory name: /Users/seven/Documents/workspace-v6.0/appcompat_v7/bin/res crunch
v7包是常见的依赖包,很容易出错, 直接删除即可
rm -r /Users/seven/Documents/workspace-v6.0/appcompat_v7/bin/res/crunch
ant clean
ant release
3.1 oom异常
找到 sdk/build-tools/target/dx 文件,打开修改 javaOpts即可
4 打多渠道包
下载 http://ant-contrib.sourceforge.net/
将下载的jar包放在 ant 的安装目录下
4.1 修改 local.properties 文件,加入
ant.dir=/usr/local/Cellar/ant/1.9.6 #ant的安装目录
target.dir=/Users/seven/Desktop/ViewPagerDemo #打包的存放目录
4.2 修改ant.properties 加入
market_channels=Wandoujia,360 #渠道列表,逗号分隔
app_name=ViewPagerDemo #app的名字
app_version=1.0 #app版本 (此时需要在target.dir下面创建一个名叫1.0的目录)。
4.3 修改 build.xml
在
<!-- 多渠道打包加入 -->
<echo>${market_channels}</echo>
<echo>${app_version}</echo>
<!-- 支持循环执行 -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties" >
<classpath>
<pathelement location="${ant.dir}/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
<echo>Run ant-contrib-1.0b3.jar ok</echo>
<target name="deploy">
<foreach target="edit_and_build" list="${market_channels}" param="channel" delimiter=",">
</foreach>
</target>
<target name="edit_and_build">
<echo>Run '${channel}' apk</echo>
<replaceregexp
encoding="utf-8"
file="AndroidManifest.xml"
flags="s"
match='android:name="UMENG_CHANNEL".+android:value="([^"]+)"'
replace='android:name="UMENG_CHANNEL" android:value="${channel}"'/>
<property name="out.final.file" location="${target.dir}/${app_version}/${app_name} V${app_version}(${channel}).apk" />
<antcall target="clean" />
<antcall target="release" />
</target>
<!-- 多渠道打包结束 -->4.4 打包
ant deploy