Android混淆时出现的proguard returned with error code 1.See console问题

最近使用项目进行Android的混淆处理,工程中加入了多个第三方的jar包,直接使用project.properties中的proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt进行混淆处理,打包APK的时候出现了proguard returned with error code 1.See console,上网查了一下出现这类问题的原因,主要介绍了三种方式,分别是Error:
C:/Documents (系统找不到指定文件),java.lang.ArrayIndexOutOfBoundsException和jar文件路径找不到,针对这三种情况进行项目复查,均不存在上述问题,最后有的文章称可能是ProGuard版本太低造成的,于是去ProGuard官网下载点击打开链接最新的ProGuard,并配置proguard-project.txt相关参数解决问题,详细过程如下

首先,在ProGuard官网下载最新的ProGuard,解压文件将lib文件夹下的三个jar包覆盖到\sdk\tools\proguard\lib,重启ADT,在project.properties文件中设置混淆语句proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.tx。其次,配置proguard-project.txt,根据Log中的日志信息,在proguard-project.txt中去除相关项的混淆-dontwarn
com.google.android.xx.**,重新打包APK即可实现混淆

下面整理一下上面叙述中说到的三个问题,文章引用自http://www.cnblogs.com/0616--ataozhijia/p/3730746.html

加入第三方jar包之后常出现的几个异常:

proguard returned with error code 1.See console

情况1:

Proguard returned with error code 1. See console

Error: C:/Documents (系统找不到指定文件)

后来发现是因为将整个工程放到了桌面上,而桌面的目录是C:/Documents and Settings/Administrator/桌面,在这里面有空格,而proguard进行发编译的时候是不允许有空格的

如果换了正确路径还不好用的话,直接删除proguard就好了

注意:SDK和程序路径最好不要有空格符

情况2:

Proguard returned with error code 1. See console

异常:

java.lang.ArrayIndexOutOfBoundsException

解决办法:将proguard.cfg中的"-dontpreverify"改成“-dontoptimize”

我把项目中生成的proguard文件夹(此时文件夹是空的)删掉,然后再重新运行项目,就OK 了。

情况3:

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0] Proguard returned with error code 1. See console

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0] java.io.IOException: Can‘t read [[email protected]] (No such file or directory)

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0]

at proguard.InputReader.readInput(InputReader.java:230)

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0]

at proguard.InputReader.readInput(InputReader.java:200)

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0]

at proguard.InputReader.readInput(InputReader.java:178)

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0]

at proguard.InputReader.execute(InputReader.java:100)

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0]

at proguard.ProGuard.readInput(ProGuard.java:195)

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0]

at proguard.ProGuard.execute(ProGuard.java:78)

[2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0]

at proguard.ProGuard.main(ProGuard.java:499)

抛出这样的异常的原因是第三方jar的引用路径不对,没有找到这个需要忽略混淆的jar包。

时间: 2024-10-10 04:24:24

Android混淆时出现的proguard returned with error code 1.See console问题的相关文章

(转)Android打包失败Proguard returned with error code 1. See console

原文地址:http://www.cnblogs.com/snake-hand/p/3161438.html 问题一: [2013-06-28 11:12:10 - ] Proguard returned with error code 1. See console [2013-06-28 11:12:10 - ] Note: there were 1 duplicate class definitions. [2013-06-28 11:12:10 - ] Warning: android.su

Proguard returned with error code 1. See console : java.lang.OutOfMemoryError

如果项目比较大代码较多,在打包时,可能会出现 java.lang.OutOfMemoryError: Java heap space 解决方法:\sdk\tools\proguard\bin\proguard.bat java -jar "%PROGUARD_HOME%"\lib\proguard.jar %* 添加-Xmx1024m -Xms1024m参数,调高JVM 的使用内存:即变成 java -Xmx1024m -Xms1024m -jar "%PROGUARD_HO

混淆时报:Proguard returned with error code 1. See console

发生这个错误是因为打包混淆时找不到我们的引用包,有的人可能说我没有引用什么Library啊,事实上,我们现在的项目创建时就默认有v4包,这是google提供的兼容包,主要为了应对Android3.0以后的新组建也可以在3.0之前使用,例如Fragment,ViewPager等等,好了,现在我们回到正题,问题我们知道了,解决办法随之而来,我们在proguard-project.txt文件(2.3左右android版本应该是proguard.cfg文件)中添加以下语句: [java] view pl

Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can't find referenced class问题的解决方式

Warning: can't find superclass or interface Warning: can't find referenced class 这两个问题的解决方法: 1.要把你项目中所引入的第三方jar包使用"-libraryjars 包路径"指定好. 2.还是报错的话,确保报错的类没有在你的项目中使用到,使用"-dontwarn 类名正則表達式"屏蔽警告. 完了?但是我还想问:第一步做完后还是报错,并且这个类在我项目中真的实用到,不能使用&qu

upgrade jessie时出现E: Sub-process /usr/bin/dpkg returned an error code (1)错误的解决办法

执行apt-get dist-upgrade时出现"E: Sub-process /usr/bin/dpkg returned an error code (1)",新内核就是不能完成设置,解决办法如下: cd /var/lib/dpkg mv info infobak;mkdir info 然后重新来过就没问题了.

[转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1)

http://yanue.net/post-123.html 在用apt-get安装软件时出现了类似于install-info: No dir file specified; try –help for more information.dpkg:处理 gettext (–configure)时出错: 子进程 post-installation script 返回了错误号 1 在处理时有错误发生:findutilsE: Sub-process /usr/bin/dpkg returned an

ubuntu 下出现E: Sub-process /usr/bin/dpkg returned an error code

在用apt-get安装软件时出现了类似于 install-info: No dir file specified; try –help for more information.dpkg:处理 gettext (–configure)时出错: 子进程 post-installation script 返回了错误号 1 在处理时有发生错误: findutils E: Sub-process /usr/bin/dpkg returned an error code (1) 第一种方法: sudo m

Sub-process /usr/bin/dpkg returned an error code (1) 解决方法

最近在debian系统上apt-get install -y ia32-libs安装软件到最后时总是出现如下错误: Sub-process /usr/bin/dpkg returned an error code (1) 解决办法: cd /var/lib/dpkg sudo mv info info.bak sudo mkdir info sudo apt-get install -y ia32-libs 开始我是想在一条命令中同时安装几个软件包,结果还是出现E: Sub-process /u

ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1)

在用apt-get安装软件时出现了类似于 install-info: No dir file specified; try –help for more information.dpkg:处理 gettext (–configure)时出错: 子进程 post-installation script 返回了错误号 1 在处理时有错误发生: findutils E: Sub-process /usr/bin/dpkg returned an error code (1) 办法如下: sudo mv