Android 正常运行和打包debug版没有问题,打包release出现问题

文章讨论了在Android开发中遇到的SophixStub热更新初始化失败的问题,其原因是由于Proguard混淆导致的NoSuchMethodError。解决方案是在proguard-rules.pro文件中添加特定的保留规则,如保持org.xmlpull.v1包下的所有类不被混淆。
摘要由CSDN通过智能技术生成

请将对应没有加入混淆的代码加入至proguard文件

可能引起的现象:SophixStub热更新初始化失败java.lang.RuntimeException: abandon initialization: installProviders

Unable to create application com.xxx.xxx.common.SophixStubApplication: java.lang.RuntimeException: abandon initialization: installProviders

例如:

Caused by: java.lang.NoSuchMethodError: No interface method o(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; in class Landroid/content/res/XmlResourceParser; or its super classes (declaration of 'android.content.res.XmlResourceParser' appears in /system/framework/framework.jar)        
at androidx.core.content.FileProvider.parsePathStrategy(FileProvider.java:8)         
at androidx.core.content.FileProvider.getPathStrategy(FileProvider.java:3)         
at androidx.core.content.FileProvider.attachInfo(FileProvider.java:4)

请在 proguard-rules.pro 文件中加入:

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

-dontwarn org.xmlpull.v1.**

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值