Skip to content

flyfire/android-commons-codec

Repository files navigation

在接入讯飞识物api的时候,发现demo接入了commons-codec,在Android端接入之后发现报错

Caused by: java.lang.NoSuchMethodError: No static method encodeHexString([B)Ljava/lang/String; in class Lorg/apache/commons/codec/binary/Hex; or its super classes (declaration of 'org.apache.commons.codec.binary.Hex' appears in /system/framework/ext.jar)

搜索了一下发现是Android系统已经内置了commons-codec,但是版本比较老,类加载的时候加载的是系统framework的类,导致出错。修改包名可以规避这个问题。

修改包名需要用到jarjar

rule.txt有三种指令,分别如下

  • rule用来取代package的名称,rule pattern result
  • zap用来移除复合名称的package zap pattern
  • keep之后保留复合的package的名称,其他的则会删除。如果和zap一起使用,将会在zap执行完之后才执行。keep pattern

pattern为要对比的字符串,可以使用***来表示任意的package名称,*可以表示一层的package,**可以用来代表多层的package。result为要取代成的字符串,可以使用@1@2这类的符号表示要使用第几个pattern的***所代表的字符串。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages