Android项目Ant命令与问题记录

来源:互联网 发布:天金加银软件下载 编辑:程序博客网 时间:2024/05/01 07:30

记录几个常用的命令(这里以windows为例)
注意需要将android-sdk-windows/tools加入到PATH环境变量中

查询当前系统可用的android target都有哪些

android.bat list target

生成build.xml

进入到project所在目录,执行

android.bat update project -p ./

在执行这个命令的时候看到好多人误用”–subprojects”,如

android.bat update project -p ./ --subprojects

其实这里的”–subprojects”绝大部分情况下没有必要,它指的是更新子目录下的project,如test project。

清理之前生成的文件

进入到project所在目录,执行

ant clean

如果ant编译时出现以下错误,需要先执行上述的清理命令
(一般Eclipse clean之后会在bin/res下自动生成crunch目录)

[aapt] invalid resource directory name: xxx\bin\res crunch

编译

编译正式版本

ant release

注意:如果没有配置keystore的信息,生成的apk不会应用签名,在设备上无法安装

编译debug版本

ant debug

问题

Unsupported class version number [52.0] (maximum 51.0, Java 1.7)

遇到这个问题的原因是使用的proguard版本最高支持到Java 1.7(我使用的还是SDK自带的,版本是4.7),当Java升级到1.8之后就会出现这个问题。

解决方案有两个:

  1. 再安装Java 1.7
  2. 更新progurad版本
    显然采用后者更加合适,但这时候我们需要使用javac的参数target来指定生成的兼容版本。

在build.xml文件中找到javac标签,然后加上

target="1.7"

即可

为什么Android Studio编译混淆不会出现问题

因为Android Studio使用Gradle编译,会自动从maven上下载最新的proguard包到本地,所以也就不会像Ant那样出现问题。
这时我们也可以明白为什么Google一直不更新SDK里自带的proguard版本了。


参考文章

  1. Android项目使用Ant打包,自动生成build.xml
  2. 通过Android命令自动编译出build.xml文件
  3. 为ant指定编译java源码的jdk版本
  4. ProGuard says Unsupported class version number [52.0] (maximum 51.0, Java 1.7) with sbt-proguard
0 0
原创粉丝点击