android多lib库工程的自动批量构建--常见问题

  话说自动构建这个东西虽小,但是还是需要注意很多细节的,现在整理一下我在调试脚本时,遇到的一些问题。

1.工具找不到

E:\linshi-workspace\auto-builder\build.xml:210: Execute failed: java.io.IOException: Cannot run program "D:\android-sdk\platform-tools\aapt.exe": CreateProcess error=2, ?????????

既然报工具找不到,肯定是相关目录下不存在这个东西。仔细对比了一下android sdk,发现不同的sdk,aapt,dex等这些工具放置的目录有所不同。

有些是在【……\android-sdk\build-tools\18.1.0】这个目录下,有的则是在【……\android-sdks\platform-tools】目录下,留意一下即可

  2.jar包重复

[apply] java.lang.IllegalArgumentException : already added: Landroid/support/v4/app/NotificationCompatIceCreamSandwich;

[apply] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)

[apply] at com.android.dx.dex.file.DexFile.add( DexFile.java:163)

[apply] at com.android.dx.command.dexer.Main.processClass( Main.java:486)

[apply] at com.android.dx.command.dexer.Main.processFileBytes( Main.java:455)

[apply] at com.android.dx.command.dexer.Main.access$400( Main.java:67)

[apply] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)

[apply] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)

[apply] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)

[apply] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)

[apply] at com.android.dx.command.dexer.Main.processOne( Main.java:418)

[apply] at com.android.dx.command.dexer.Main.processAllFiles( Main.java:329)

[apply] at com.android.dx.command.dexer.Main.run( Main.java:206)

[apply] at com.android.dx.command.dexer.Main.main( Main.java:174)

[apply] at com.android.dx.command.Main.main( Main.java:95)

[apply] 1 error; aborting

  这个问题比较好解决,看一下自己工程的lib库下,是否引用了相同的jar包。我的两个lib工程是使用eclipse新建的工程,在lib目录下,adt会自动为你添加android.support.v4这个包。所以导致了jar包冲突。

  3.找不到指定路径

 这个问题不解释了,配置项目设置,基本设置时,注意路径分隔符使用【//】,一般仔细看看log中提示的路径是否存在即可。

  4.找不到java编译器

这个问题是我遇到的比较奇怪的问题,Java home已经设置了,classpath都添加了tools包,window系统能够正确使用javac命令,但是在eclipse中,总是提示找不到java compiler,查找了一下网上的资料都不对。

最后发现eclipse居然去jdk的jre目录下寻找toos.jar文件,所以将java jdk/lib目录下的tools.jar包拷贝到java jdk/jre目录下即可。


其他的小问题,就不在赘述了。所以还是那句话,努力为改进和自动化而努力。

接下来的文章,我们来介绍批量打包。



原文链接:http://www.67tgb.com/?p=631


转载注明:望月听涛

你可能感兴趣的:(android多lib库工程的自动批量构建--常见问题)