No static method asAttributeSet(Lorg/xmlpull/v1/a;)Landroid/util/AttributeSet;studio混淆报错

在使用studio混淆代码的时候,如果你是通过webService获取数据的,并且使用的是ksoap2-android-assembly-3.5.0-jar-with-dependencies.jar这个库去获取数据解析数据的,直接去混淆报错,从网上网友的解释中看到ksoap2里面XmlPullParser,XmlSerializer这两个类重复定义了,android系统也定义了这个类,在混淆的时候,系统不知道用哪个,抛出异常.在混淆的配置文件里面 添加如下代码
-dontwarn org.xmlpull.v1.XmlPullParser -dontwarn org.xmlpull.v1.XmlSerializer
就可以编译通过,打包出来的apk,但是这个apk在有些手机上不能打开,点击启动图标一闪而过,主要是三星和oppo手机安装无法打开报出如下异常:

 UncaughtException detected: java.lang.NoSuchMethodError: No static method asAttributeSet(Lorg/xmlpull/v1/a;)Landroid/util/AttributeSet; in class Landroid/util/Xml; or its super classes (declaration of 'android.util.Xml' appears in /system/framework/framework.jar)

这个异常一看就是混淆的错误:
需要在配置文件里面添加如下代码:

-keep class org.xmlpull.v1.* {*;}

配置文件的完整的代码如下

-dontwarn org.xmlpull.v1.XmlPullParser
-dontwarn org.xmlpull.v1.XmlSerializer
-keep class org.xmlpull.v1.* {*;}

这样就可以完美解决问题.

借鉴https://www.jianshu.com/p/48c56e9048e7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值