解决Android无法使用Apache的Base64的问题,安卓不能使用org.apache.commons.codec.binary.Base64 的问题

因为 android 系统 framework 层也使用了org.apache.commons.codec 库,运行时调用的是 framework 层的库,没有加载我们添加的包,导致我们不能使用该库的方法。我们通常做RSA加密会用到Base64,从而导致冲突。

方案一

使用java自带base64 (java.util.Base64),远端也要同样使用java.util.Base64兼容安卓端

方案二

修改Apache code库的包名

工具:jarjar.jar
下载地址:https://www.jb51.net/softs/577289.html

解决Android无法使用Apache的Base64的问题,安卓不能使用org.apache.commons.codec.binary.Base64 的问题_第1张图片

jarjar使用教程:https://www.cnblogs.com/yejiurui/p/4283505.html

工具使用:
  1. cmd输入 查看jar包所有包名
java -jar jarjar.jar strings commons-codec-1.15.jar
  1. 新建一个rule.txt
    在这里插入图片描述

  2. rule.txt 内容
    解决Android无法使用Apache的Base64的问题,安卓不能使用org.apache.commons.codec.binary.Base64 的问题_第2张图片
    表示修改包名为org.apache.commons.android.*
    具体意思看jarjar使用教程

  3. cmd输入

java -jar jarjar.jar process rule.txt commons-codec-1.15.jar commons-codes-android-1.15.jar

开始生成新的包

解决Android无法使用Apache的Base64的问题,安卓不能使用org.apache.commons.codec.binary.Base64 的问题_第3张图片

你可能感兴趣的:(Android开发,实用教程)