android打包错误

1:Proguard returned with error code 1. See console
[2011-12-01 14:03:09 - ] proguard.ParseException: Expecting class path separator ';' before 'Analytics' in line 1 of file 'C:\Users\cninbexi\AppData\Local\Temp\android_841900648242013690.pro',
[2011-12-01 14:03:09 - xxx]   included from argument number 2
[2011-12-01 14:03:09 - xxx]     at proguard.ConfigurationParser.parseClassPathArgument(ConfigurationParser.java:295)
[2011-12-01 14:03:09 - xxx]     at proguard.ConfigurationParser.parse(ConfigurationParser.java:109)
[2011-12-01 14:03:09 - xxx]     at proguard.ProGuard.main(ProGuard.java:491)

打开对应的文件C:\Users\cninbexi\AppData\Local\Temp\android_841900648242013690.pro可以看到是因为第三方库的路径包含空白字符,把路径的空白字符去掉即可解决此问题。

2:

The same input jar is specified twice 完美解决办法
简介: eclipse android proguard 打包时出现 java.io.IOException: The same input jar is specified twice 错误,这里给出解决办法
    升级到高版本的 android sdk 之后发现 proguard 打包app 时出现The same input jar ***.jar is specified twice 的错误,导致混淆失败无法打包出新版本,百度google 都不能解决 愁死了。
    通过一天的折腾人都要崩溃了,最终还是被我找到了解决办法。

解决方法如下:
  1. 打开 proguard.cfg
  2. 在所有的-libraryjars 前插入 # 成 #-libraryjars xxxx.jar
原因分析,可能是高版本的 sdk 通过 proguard 混淆代码时默认已经将 lib目录中的 jar 都已经添加到打包脚本中,所以不需要再次手动添加。
 

3:

jpush打包报错下面简单把解决方案说一下吧:

在你的proguard.cfg加上代码: 如果是使用新版本的ADT 将project.properties的中“# proguard.config=${sdk.dir}/tools/proguard/proguard-android. txt:proguard-project.txt”的“#”注释去掉,然后在proguard-android.txt中配置如下:

-dontwarn cn.jpush.** 
-keep class cn.jpush.** { *; }

使用 SDK1.3.X 及以后的版本

替换D:\adt-bundle-windows-x86-20130729\sdk\tools中的proguard文件夹     点我立即下载最新版混淆文件

如此,便完美解决jPush混淆报错问题了。

4:

在project.properties里加上   proguard.config=proguard.cfg

proguard.cfg 配置如下:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#忽略警告 也可以用-ignorewarnings
-dontwarn

#声明第三方jar包,不用管第三方jar包中的.so文件(如果有)
-libraryjars libs/baidumapapi.jar
-libraryjars libs/tencent_openapi.jar
-libraryjars libs/httpmime-4.1.3.jar
-libraryjars libs/weibo.sdk.android.sso.jar
-libraryjars libs/android-support-v4.jar

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
native <methods>;
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

#不混淆第三方jar包中的类
-keep class com.baidu.mapapi.** {*;}
-keep class com.tencent.tauth.** {*;}
-keep class org.apache.http.entity.mime.** {*;}
-keep class android.support.v4.** {*;}
-keep class android.net.http.** {*;}
-keep class com.weibo.sdk.android.** {*;}
-keep class com.sina.sso.** {*;}

说明一下,第三方jar包中如果有.so文件,不用去理会,引入的第三方jar文件不要混淆,否则可能会报异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值