Android极光推送jPush混淆解决方案终极篇

原创 2014年11月27日 17:09:25

今天在做混淆时,极光推送报错了,错误如下:(下面错误代码从别的文章摘录而来,因为已经解决,就不再显示我自己的错误信息了,基本是一致的,除了时间。)

<span style="font-size:18px;">[2013-09-23 20:30:59 - TEST] Proguard returned with error code 1. See console 
[2013-09-23 20:30:59 - TEST] Note: there were 105 duplicate class definitions. 
[2013-09-23 20:30:59 - TEST] Unexpected error while computing stack sizes: 
[2013-09-23 20:30:59 - TEST]   Class       = [cn/jpush/android/api/InstrumentedActivity] 
[2013-09-23 20:30:59 - TEST]   Method      = [<clinit>()V] 
[2013-09-23 20:30:59 - TEST]   Exception   = [java.lang.IllegalArgumentException] (Stack size becomes negative after instruction [12] invokevirtual #57 in [cn/jpush/android/api/InstrumentedActivity.<clinit>()V]) 
[2013-09-23 20:30:59 - TEST] Unexpected error while editing code: 
[2013-09-23 20:30:59 - TEST]   Class       = [cn/jpush/android/api/InstrumentedActivity] 
[2013-09-23 20:30:59 - TEST]   Method      = [<clinit>()V] 
[2013-09-23 20:30:59 - TEST]   Exception   = [java.lang.IllegalArgumentException] (Stack size becomes negative after instruction [12] invokevirtual #57 in [cn/jpush/android/api/InstrumentedActivity.<clinit>()V]) 
[2013-09-23 20:30:59 - TEST] java.lang.IllegalArgumentException: Stack size becomes negative after instruction [12] invokevirtual #57 in [cn/jpush/android/api/InstrumentedActivity.<clinit>()V] 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.attribute.visitor.StackSizeComputer.evaluateInstructionBlock(StackSizeComputer.java:334) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.attribute.visitor.StackSizeComputer.visitBranchInstruction(StackSizeComputer.java:197) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.instruction.BranchInstruction.accept(BranchInstruction.java:140) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.attribute.visitor.StackSizeComputer.evaluateInstructionBlock(StackSizeComputer.java:355) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.attribute.visitor.StackSizeComputer.visitCodeAttribute0(StackSizeComputer.java:153) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.attribute.visitor.StackSizeComputer.visitCodeAttribute(StackSizeComputer.java:110) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.editor.StackSizeUpdater.visitCodeAttribute(StackSizeUpdater.java:49) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.editor.CodeAttributeEditor.visitCodeAttribute0(CodeAttributeEditor.java:376) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.editor.CodeAttributeEditor.visitCodeAttribute(CodeAttributeEditor.java:311) 
[2013-09-23 20:30:59 - TEST]     at proguard.optimize.DuplicateInitializerInvocationFixer.visitCodeAttribute(DuplicateInitializerInvocationFixer.java:92) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:101) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.ProgramMethod.attributesAccept(ProgramMethod.java:79) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.attribute.visitor.AllAttributeVisitor.visitProgramMember(AllAttributeVisitor.java:95) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.util.SimplifiedVisitor.visitProgramMethod(SimplifiedVisitor.java:91) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.ProgramMethod.accept(ProgramMethod.java:71) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:504) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.visitor.AllMethodVisitor.visitProgramClass(AllMethodVisitor.java:47) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.ProgramClass.accept(ProgramClass.java:346) 
[2013-09-23 20:30:59 - TEST]     at proguard.classfile.ClassPool.classesAccept(ClassPool.java:116) 
[2013-09-23 20:30:59 - TEST]     at proguard.optimize.Optimizer.execute(Optimizer.java:500) 
[2013-09-23 20:30:59 - TEST]     at proguard.ProGuard.optimize(ProGuard.java:306) 
[2013-09-23 20:30:59 - TEST]     at proguard.ProGuard.execute(ProGuard.java:115) 
[2013-09-23 20:30:59 - TEST]     at proguard.ProGuard.main(ProGuard.java:492) </span>
网上百度各种解决方案,尝试N次后仍然无效,最后同事把他的混淆文件发来全部替换,而不单纯是一个jar文件,最后完美解决。

下面简单把解决方案说一下吧:

1.在你的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.** { *; }

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

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

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


android studio混淆

* android studio混淆*混淆代码如下:# Add project specific ProGuard rules here. # By default, the flags in th...
  • daiwenbingg
  • daiwenbingg
  • 2017年05月15日 22:44
  • 312

Android Studio混淆模板及常用第三方混淆(看了都说好)

首先要在build.gradle中开启混淆,也就是minifyEnabled true,我用的build.gradle具体如下所示: def releaseTime() { return n...
  • a120705230
  • a120705230
  • 2016年06月30日 17:23
  • 18930

ProGuard 混淆(包含极光推送)

  • 2014年02月12日 15:00
  • 4KB
  • 下载

关于一个极光推送混淆之后导致找不到相应包

android极光推送导致 找不到包
  • zhengzhiwei0119
  • zhengzhiwei0119
  • 2015年12月23日 16:30
  • 564

JPush极光推送的原理与简单demo的实现会遇到的问题

JPush极光推送的原理与简单demo的实现会遇到的问题
  • u013836857
  • u013836857
  • 2016年05月04日 11:15
  • 11701

解决极光推送Jpush混淆报错问题

[2013-11-28 13:17:19 - Sjh_android] Proguard returned with error code 1. See console [2013-11-28 13:...
  • msn465780
  • msn465780
  • 2013年11月28日 14:20
  • 5260

Android极光推送jPush混淆解决方案终极篇

今天在做混淆时,极光推送报错了,错误如下:(下面错误代码从别的文章摘录而来,因为已经解决,就不再显示我自己的错误信息了,基本是一致的,除了时间。)...
  • u010358168
  • u010358168
  • 2014年11月27日 17:09
  • 3459

代码混淆

以下是android  studio 的代码混淆 一  release { signingConfig signingConfigs.release minifyEnabled...
  • shayu8nian
  • shayu8nian
  • 2016年04月06日 14:37
  • 168

AndroidStudio集成极光推送SDK

AndroidStudio集成极光推送SDKJPush极光推送(以下简称“极光sdk”)是免费专业第三方云推送服务平台,专注于安卓推送Android消息推送,ios推送通知,手机推送,app云推送服务...
  • u010495996
  • u010495996
  • 2016年05月31日 03:18
  • 1444

JPush(极光推送)实战总结

关于JPush极光推送是国内的服务厂商提供的一站式push服务(同时支持iOS、android),后面也加入了即时通讯的能力供app使用。致力于打造简单、可靠、价格有竞争力的服务(简单功能全免费,高级...
  • openglnewbee
  • openglnewbee
  • 2016年03月18日 11:11
  • 17673
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android极光推送jPush混淆解决方案终极篇
举报原因:
原因补充:

(最多只允许输入30个字)