安卓:No static method decodeBase64

造成主要原因

1.导入的commons-codec的jar包与项目里的第三方sdk(比如微信和qq第三方登陆重复)
2.安卓framework里也含有此jar包,这是最主要原因,也是我项目中的报错原因

调用代码

X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(Base64.decodeBase64(publicKey));
我项目里还导入了commons-io的jar包用于与服务器进行密码的加解密,publickey是解密后获取的公钥,用于加密密码,关键报错的是这句代码中的Base64.decodeBase64(publickey)

错误

No static method decodeBase64(Ljava/lang/String;)[B in class Lorg/apache/commons/codec/binary/Base64; or its super classes (declaration of ‘org.apache.commons.codec.binary.Base64’ appears in /system/framework/org.apache.http.legacy.boot.jar)
没有这个静态方法,但是编译能过,不报错。真机运行就报错,原因上面已经说明了,安卓在framework里的httpclient里也有相同的包,而且不包括这个静态方法,而且这个版本相当古老,并且覆盖了自己导入的版本,所以报错。

解决方法

之前自己搜索的资料里基本是用安卓的Base64来代替解决问题,但是每个人写的项目业务逻辑是不同的,比如我项目中的加解密是不能用安卓的Base64来完成的,还有的解决方法是修改common-codec jar里包的包名和目录结构,这个过程比较繁琐但是可行,包名不一样谈何覆盖。下面我来提供一个最简单的方法。

报错方法是commons-codec里的Base64类中的decodeBase64方法,首先编译能通过这个类肯定是没问题的。将这个类直接copy到自己工程下,还有它的父类,为了区分可以改类名也可以不改,现在包的路径不一样了,不会被覆盖,自然也没有这个问题了,然后在把之前用的Base64替换为自己工程下的,所有问题都没有了。

安卓:No static method decodeBase64,commen-code包里报错的信息相关推荐

  1. 关于jar包运行报错:Exception in thread “main“ java.lang.UnsupportedClassVersionError的解决办法

    打包jar包后 ,在jar路径下cmd使用命令 java -jar  jar包名字 报错: Exception in thread "main" java.lang.Unsuppo ...

  2. 安装fastDFS的依赖包fdfs_client报错解决方法

    安装fastDFS的依赖包fdfs_client报错解决方法 参考文章: (1)安装fastDFS的依赖包fdfs_client报错解决方法 (2)https://www.cnblogs.com/Se ...

  3. The package javax.swing is not accessible(java GUI 编程时引用swing包和awt包时会报错怎么办)

    Java GUI 编程时引用swing包和awt包时会报错怎么办 一.环境与错误现象 使用的编译器为eclipse,情况为: 二.解决方法 问题主要是由工程中的module-info.java这个文件 ...

  4. R安装WGCNA包(MacOS M1芯片)及impute包安装报错的解决方法【已成功】

    R安装WGCNA包(MacOS M1芯片) WGCNA R安装WGCNA包 安装impute时的错误 impute包安装报错的解决方法 WGCNA 加权基因共表达网络分析 (WGCNA, Weight ...

  5. 包引入报错 ImportError: cannot import name ‘best_partition‘ from ‘community‘

    目录 一.问题描述 二.解决方法 一.问题描述 在 Python 代码中引入包:from community import best_partition 时报错: ImportError: canno ...

  6. 关于com.lowagie.text包的报错问题

    关于com.lowagie.text包的报错问题 接手了一个maven项目,导入之后发现一直报错 提示我找不到这个包,在右侧的maven projects一栏中找了一下,也确实没有com.lowagi ...

  7. 导入自己模块包导入报错:ModuleNotFoundError: No module named ‘xxx‘解决方法 晓物智联

    导入自己模块包导入报错:ModuleNotFoundError: No module named 'xxx'解决方法 文章来源于:http://www.52phm.cn/blog/detail/28 ...

  8. pipenv install 包名 报错问题解决

    pipenv install 包名 报错问题 == 使用pipenv install requests --dev报异常,特记录解决办法== 1.报错截图 下面 报错代码. Installing re ...

  9. Idea导出jar包运行报错:找不到主清单属性解决方法

    Idea导出jar包运行报错:找不到主清单属性解决方法 参考文章: (1)Idea导出jar包运行报错:找不到主清单属性解决方法 (2)https://www.cnblogs.com/stars-on ...

最新文章

  1. css loader.net,* !!vue-style-loader!css-loader?
  2. 让神经网络给符号AI“打工”,MIT和IBM联合解决深度学习痛点,未来将用于自动驾驶...
  3. python数据结构推荐书-腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
  4. 数据流中的第k大元素的golang实现
  5. 实用计算机技术选修,实用计算机组装与维护选修课学习心得
  6. Java 设计模式之迭代器模式
  7. centos 对已有卷扩容_centos LVM扩容 添加磁盘
  8. 设置网格_500ETF网格设置
  9. php空数组添加,php 删除空数组
  10. 典型排序算法(C语言实现)
  11. 2012最新75款好看的英文字体免费下载【中篇】
  12. adguard没有核心 core no_新媒体自学宝典(No.24)| 如何借力自媒体平台放大粉丝流量?...
  13. idea复制web项目没有servlet选项
  14. MATLAB获取附加功能的方法
  15. 海豚蓝牙ASIO驱动程序使用说明
  16. 《论语》全译——子路篇第十三
  17. 疯狂猜颜色小游戏C++个人项目
  18. Element UI组件介绍
  19. python+undetected_chromedriver+chrome绕过五秒盾(cloudflare)
  20. mac如何升级node版本

热门文章

  1. Linux基础和命令大全
  2. 5G建设:作用究竟有多大
  3. taylor+swift纽约公寓_欧美明星豪宅都有多美,眼见为实!
  4. Word转PDF出现“错误,未定义书签”
  5. 09组-选题与需求分析报告
  6. (JAVA) 相反数
  7. APS高级计划与排程系统基本概念和功能说明
  8. 服务器您的网络已被劫持请立即修复,网页被劫持并跳转到发布网络的修复方法...
  9. NAACL 2021 上的图神经网络好文
  10. NP管理器 NPManager v3.0.49 安卓APK逆向反编译工具