`
410063005
  • 浏览: 179992 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ant使用问题总结

 
阅读更多

工作中维护一个android项目,之前使用bat脚本打包。最近机器换硬盘后使用新的sdk,发现原有bat脚本无法正常打包,发现原因如下:

1、新版本sdk中,dx.bat路径发生变化,apkbuilder.bat脚本被删除

2、原有的bat脚本不规范,比如使用rm删除文件(未安装cygwin时rm命令不能使用)

 

另外,bat脚本还存在其他一些问题:比如,打包时不能区分debug版本和release版本。所以决定换成ant打包。使用ant时遇到几个问题,总结记录下来,备忘。

 

1、duplicate class definitions

混淆时出现重复的类定义错误。项目依赖两个jar包(不同版本的com.android.location.provider.jar),其中有几个类的完全限定名相同。但为了保证项目可以编译通过,必须同时使用这两个jar。

解决办法:com.android.location.provider.jar为android系统库,我们只保证build path中包含这两个jar包即可,但要注意打包时不要导出这些jar中的类,避免proguard混淆出错。一般而言, android项目中libs目录下的jar包会ant自动添加到build path并导出。 所以修改如下:

 

1)将这两个jar包放到新建一个lib目录中,避免被自动export

 2)在ant中添加一个property,将这两个jar包添加到classpath

 

<property name="java.compiler.classpath" value="lib/classes-full-debug1.jar;lib/location.jar;lib/location1.jar" />

 
 2、unresolved reference
找不到类定义。第三方库中的某些类引用了一些其他类,proguard找不到这些类,认为是错误。

 

对相应的类使下dontwarn指令, 取消proguard的警告, ant打包通过

-dontwarn com.android.location.**
-dontwarn com.android.internal.location.**

 

3、不能自动签名

新建一个ant.properties文件指定keystore的名字和密码。文件内容如下

 

key.store=xx
key.store.password=xx
key.alias=xx
key.alias.password=xxx

 

4、提示无法正确 import build.xml

一般是sdk路径不正确引起的,修改local.properites中的sdk.dir,指定正确的路径

 

5、提示target不正确

一般是缺少对应version的sdk, 修改  project.properties中的target,指定正确的target

 

6、javac报错,提示字符编码引起的问题

java源码文件字符编码与javac使用的字符编码不匹配引起的问题,使用以下property,保持字符编码一致即可

<property name="java.compilerargs" value="-encoding <正确的字符编码>" />

或者在local.properties文件中增加 java.compilerargs=-encoding <正确的字符编码>

java.compilerargs=-encoding <正确的字符编码>

 

7、未开启混淆

一般在 project.properties中指定proguard.config=proguard.cfg即可

 

 

 

 

  • 大小: 3.6 KB
  • 大小: 5.9 KB
分享到:
评论

相关推荐

    Ant参考教程,Ant使用指南,Ant全攻略

    "Ant十五大最佳实践.doc"则可能总结了经验丰富的开发者在使用Ant时总结的一些技巧和建议,比如合理组织构建文件,使用变量和属性来减少重复,保持构建文件的简洁性,以及利用Ant的条件和循环结构来优化构建过程。...

    Ant使用指南.rar

    总结来说,Ant是一个强大的Java构建工具,通过XML配置文件实现构建过程的自动化。了解并熟练掌握Ant的使用,能极大地提升Java开发者的项目管理和构建效率。这份“Ant使用指南”将深入浅出地讲解Ant的各种特性和用法...

    ant ant ant ant

    "Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和核心地位。 Ant的设计理念是“一切都是XML”,它通过XML格式的构建...

    ant使用手册ANT使用指南

    ### ant使用手册ANT使用指南 #### 一、引言 Ant是一种流行的开源构建工具,用于自动化软件项目的构建过程。尤其适用于Java项目,但它也可以用于非Java项目。由于Ant的灵活性和易用性,它在Java开发者社区中迅速...

    ANT使用指南ANT使用指南

    ### ANT使用指南详解 #### 一、导言 Apache Ant 是一款开源的Java构建工具,类似于传统的Unix Make工具。Ant采用XML格式来定义构建过程,提供了丰富的任务(task)集合,适用于自动化编译、测试和部署Java应用程序。...

    ant编译命令总结

    Apache Ant 编译命令总结 Apache Ant 是一个基于 Java 的生成工具,主要用来将源代码和其他输入文件转换为可执行文件的形式,或者转换为可安装的产品映像形式。Ant 在软件开发中扮演着重要角色,确保在每次生成期间...

    ant工具使用指南ant工具使用指南

    总结,Ant作为Java开发中的构建工具,其强大在于灵活性和可扩展性。通过理解并掌握Ant的基本概念和常用任务,开发者可以自定义构建流程,提高开发效率。无论是小型项目还是大型企业级应用,Ant都能提供有力的支持。...

    ANT使用详细总结与心得

    《ANT使用详细总结与心得》 ANT,全称Apache Ant,是一个Java库和命令行工具,其任务是驱动构建过程。它的设计目标是推动软件项目的构建过程自动化,尤其是在Java环境中。ANT以其灵活性和可扩展性著称,通过XML格式...

    Ant使用指南(适合初学者)

    总结,Ant是Java开发者的重要工具,掌握Ant的使用能够提高开发效率,简化项目管理。通过了解Ant的基本结构、任务和属性,初学者可以快速上手,并根据项目的具体需求进行定制。同时,理解Ant与其他构建工具(如Maven...

    Ant构建中使用JS脚本方法

    总结来说,Ant结合JavaScript脚本提供了一种强大的方式来定制和扩展构建过程,尤其适合处理项目中的特殊需求。通过熟练掌握这一技巧,开发者能够更有效地管理和自动化他们的Java项目,提高开发效率,减少手动操作...

    Ant详细配置总结

    ### Ant详细配置总结 #### 一、Ant简介与特点 Ant是Apache旗下的一款强大的构建工具,主要用于Java项目的自动化构建过程,如编译、测试、打包、部署等操作。它的核心优势在于其高度的可定制性和灵活性,使得开发者...

    apache-ant-1.6.5-bin.zip_ ant 1.6.5_ant_ant-1.6.5_apache ant win

    总结起来,Apache Ant 1.6.5是一个为Java项目提供构建功能的工具,尤其适用于Windows平台。通过解压缩此ZIP文件并配置环境变量,用户可以利用Ant执行各种项目构建任务。详细的使用方法和特性可通过提供的readme.txt...

    ant使用最简单的实例

    总结一下,Ant是一个强大的Java项目构建工具,其核心在于XML格式的构建文件,它定义了项目的构建步骤和依赖。这个最简单的实例展示了如何用Ant编译源代码、创建JAR文件以及清理构建产物。掌握Ant的基本使用,能帮助...

    Junit+Jacoco+ant集成使用

    在Java开发过程中,测试是...总结,集成JUnit和JaCoCo到Ant项目中,可以有效地进行自动化测试并获取代码覆盖率报告,这对于持续集成和代码质量管理至关重要。正确配置和使用这些工具,有助于提升项目的质量和可维护性。

    ant使用源代码

    这个任务可能使用Ant的内置`&lt;echoproperties&gt;`任务显示当前项目的属性,或者自定义脚本输出帮助文本。 3. `jar`任务:Ant提供了强大的打包功能,`&lt;jar&gt;`任务就是其中之一。它用于将编译后的类文件打包成JAR(Java ...

    ant 学习与总结

    ### Apache Ant 学习与总结 #### 一、Ant 是什么? Apache Ant 是一款基于 Java 的构建工具,用于将源代码和其他输入文件转换为可执行文件或安装包等形式。随着软件项目的复杂度增加,确保每次构建都能使用相同的...

Global site tag (gtag.js) - Google Analytics