• 安卓中在使用poi来操作excel导入的时候异常信息


    前言

    在开发过程中,发现debug包可以正常运行,release包运行的过程中出现Crash。首先怀疑的点是混淆导致的。然后开始验证自己的推断(装逼模式开启)。

    什么是混淆

    百度百科中讲到:Android代码混淆,又称Android混淆,是伴随着Android系统的流行而产生的一种AndroidAPP保护技术,用于保护APP不被破解和逆向分析

    出现的异常信息如下:

    java.lang.NoClassDefFoundError: aavax.xml.stream.FactoryFinder
    	at a.a.b.b.a(Unknown Source:12)
    	at a.a.b.b.e(Unknown Source:68)
    	at a.a.b.b.c(Unknown Source:0)
    	at a.a.b.c.b(Unknown Source:4)
    	at e.a.b.p.b.o.j.b.>(Unknown Source:0)
    	at e.a.b.p.b.a.H(Unknown Source:45)
    	at e.a.b.p.b.a.>(Unknown Source:11)
    	at e.a.b.p.b.b.>(Unknown Source:0)
    	at e.a.b.p.b.m.>(Unknown Source:0)
    	at e.a.b.p.b.a.I(Unknown Source:4)
    	at e.a.b.s.y.a(Unknown Source:0)
    	at e.a.b.t.c.b0.>(Unknown Source:0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    当出现类似上面信息的时候,这个时候就应该是混淆的问题了。
    只需要将下面的代码添加到proguard-rules.pro文件中即可。

    -keep class com.bea.xml.stream.** { *;}
    -keep class com.wutka.dtd.** { *;}
    -keep class org.** { *;}
    -keep class aavax.xml.** { *;}
    -keep class com.microsoft.schemas.office.x2006.** { *; }
    -keep class schemaorg_apache_xmlbeans.** { *; }
    -keep class schemasMicrosoftComOfficeExcel.** { *; }
    -keep class schemasMicrosoftComOfficeOffice.** { *; }
    -keep class schemasMicrosoftComVml.** { *; }
    -keep class repackage.** { *; }
    -keep class schemaorg_apache_xmlbeans.** { *; }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    如图:
    在这里插入图片描述

  • 相关阅读:
    c语言-手撕多级时间轮定时器(纯手写)
    sizeof和strlen求取数组&指针之辨析
    06 数组
    Pigsty:开箱即用的数据库发行版
    12.3做题
    React:构建Web应用的未来
    Java设计模式之建造者模式
    Audacity 使用教程:轻松录制、编辑音频
    MySQL插入数据insert ignore和replace into
    【mindspore】数据加载报错,提示The pointer[cnode] is null.
  • 原文地址:https://blog.csdn.net/Wbl752134268/article/details/126488388