Android之-android-support-v4.jar的混淆问题

本文介绍了解决Android应用中使用android-support-v4库及Gson库时遇到的ProGuard混淆问题的方法。针对android-support-v4,通过指定保留相关类和接口避免混淆错误;对于Gson,则保持泛型信息和注解不被移除,确保JSON与对象间的正确转换。

Android之-android-support-v4.jar的混淆问题
2012年09月08日  ⁄ Android ⁄ 共 374字 ⁄ 评论数 1 ⁄ 被围观 1,537 views+

今天在打包混淆的时候,因为使用了android-support-v4而发生混淆错误,无法打包,网上google了一下,没发现可用的,就东拼西凑的把网上各个版本拼凑了下,拼凑出下面自己可用通过的代码。
在proguard.cfg中加入以下代码:

1 -libraryjars   libs/android-support-v4.jar //这里根据你的jar包的路径做改动
2 -dontwarn android.support.v4.** 
3 -keep class android.support.v4.** { *; }
4 -keep interface android.support.v4.app.** { *; }
5 -keep public class extends android.support.v4.**
6 -keep public class extends android.app.Fragment
Android之-Gson混淆问题
2012年09月11日  ⁄ Android ⁄ 共 948字 ⁄ 暂无评论 ⁄ 被围观 735 views+

google出的Gson个人感觉在处理json和对象之间的转换方面还是相当简便的。不过在混淆的时候就碰到了点问题,遇到嵌套的json数据无法成功转换成正确的对象。这个问题折腾了自己好几天,还特意新建了个项目来确定原因。因为电脑不算很好,签名混淆打包比较费时,4,5分钟的样子才能打好,具体没计算过,不过大概范围就这样,所以导致调试花了蛮久的。今天在搜索中文相关问题找不到结果的情况下只搜索英文,终于找到了解决方法。方法就在google的gson的svn里的example里,真是要吐血啊。
地址:http://code.google.com/p/google-gson/source/browse/trunk/examples/android-proguard-example/proguard.cfg
主要代码段如下:

01 ##---------------Begin: proguard configuration for Gson  ----------
02 # Gson uses generic type information stored in a class file when working with fields. Proguard
03 # removes such information by default, so configure it to keep all of it.
04 -keepattributes Signature
05  
06 # For using GSON @Expose annotation
07 -keepattributes *Annotation*
08  
09 # Gson specific classes
10 -keep class sun.misc.Unsafe { *; }
11 #-keep class com.google.gson.stream.** { *; }
12  
13 # Application classes that will be serialized/deserialized over Gson
14 -keep class com.google.gson.examples.android.model.** { *; }
15  
16 ##---------------End: proguard configuration for Gson  ----------

如果用了这个还不行的话,可以去上面的网址里看下完整的。
反正我是加上之后应用可以正常开始跑了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值