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

  • Post author:
  • Post category:其他

因为 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

在这里插入图片描述

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 内容
    在这里插入图片描述
    表示修改包名为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

开始生成新的包

在这里插入图片描述


版权声明:本文为weixin_43418331原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。