Android 打包几种报错情况和解决办法proguard returned with error code 1.

本文主要是介绍Android 打包几种报错情况和解决办法proguard returned with error code 1.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

情况1:
Proguard returned with error code 1. See console
Error: C:/Documents (系统找不到指定文件)
这个是因为有空格引起的,proguard进行发编译的时候是不允许有空格的。所以要注意工程所放位置是否有空格。
如果换了正确路径还不好用的话,直接删除proguard就好了
注意:SDK和程序路径最好不要有空格符

情况2:
Proguard returned with error code 1. See console
异常:
java.lang.ArrayIndexOutOfBoundsException
解决办法:将proguard.cfg中的"-dontpreverify"改成“-dontoptimize”
把项目中生成的proguard文件夹(此时文件夹是空的)删掉,然后再重新运行项目,就OK 了。

情况3:
Proguard returned with error code 1. See console
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find superclass or interface android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced class android.app.Fragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced method 'android.app.Activity getActivity()' in class com.amap.api.maps.MapFragment
[2014-01-20 09:37:39 - DOYI] Warning: com.amap.api.maps.MapFragment: can't find referenced method 'android.os.Bundle getArguments()' in class com.amap.api.maps.MapFragment
[2014-01-20 09:37:39 - DOYI] Warning: com.autonavi.aps.amapapi.Utils: can't find referenced class android.provider.Settings$Global
[2014-01-20 09:37:39 - DOYI] Warning: com.autonavi.aps.amapapi.Utils: can't find referenced class android.provider.Settings$Global
[2014-01-20 09:37:39 - DOYI] Warning: there were 15 unresolved references to classes or interfaces.
[2014-01-20 09:37:39 - DOYI]          You may need to specify additional library jars (using '-libraryjars').
[2014-01-20 09:37:39 - DOYI] Warning: there were 2 unresolved references to program class members.
[2014-01-20 09:37:39 - DOYI]          Your input classes appear to be inconsistent.
[2014-01-20 09:37:39 - DOYI]          You may need to recompile them and try again.
[2014-01-20 09:37:39 - DOYI]          Alternatively, you may have to specify the option 
[2014-01-20 09:37:39 - DOYI]          '-dontskipnonpubliclibraryclassmembers'.
[2014-01-20 09:37:39 - DOYI] java.io.IOException: Please correct the above warnings first.
[2014-01-20 09:37:39 - DOYI] at proguard.Initializer.execute(Initializer.java:321)
[2014-01-20 09:37:39 - DOYI] at proguard.ProGuard.initialize(ProGuard.java:211)
[2014-01-20 09:37:39 - DOYI] at proguard.ProGuard.execute(ProGuard.java:86)
[2014-01-20 09:37:39 - DOYI] at proguard.ProGuard.main(ProGuard.java:492)

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

只需在你的proguard-project.txt中添加如下两行即可。

-ignorewarnings
-libraryjars libs/Android_Map_V2.0.4.jar


你可以根据你的项目提示,添加需要的jar。

下面是4.0打包办法!

其实Android 4.0要用ProGuard比2.3更简单:在Eclipse中打开工程目录下的project.properties文件,该文件中有以下两行:

To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

根据这段说明,只要将proguard.config前面的#去掉,就可以利用ProGuard来混淆代码了!当然,默认的设置是不带优化功能的,可以用以下设置来加上代码优化功能:
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
然后只要经过数字签名之类的编译后,代码就是混淆的了。



这篇关于Android 打包几种报错情况和解决办法proguard returned with error code 1.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030036

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

宝塔安装的MySQL无法连接的情况及解决方案

《宝塔安装的MySQL无法连接的情况及解决方案》宝塔面板是一款流行的服务器管理工具,其中集成的MySQL数据库有时会出现连接问题,本文详细介绍两种最常见的MySQL连接错误:“1130-Hostisn... 目录一、错误 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr