Android中使用commons-codec-1.6.jar 进行Base64编解码出现的问题

编码时出现异常:

java.lang.NoSuchMethodError: No static method encodeBase64String([B)Ljava/lang/String; 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)

解码问题:

java.lang.NoSuchMethodError: 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)

通过分析日志,发现由于Android系统的Framework层也用了apache的commons-codec这个包,和我在lib中引入的包冲突了。。。

解决方式:从 http://archive.apache.org/dist/commons/codec/binaries/  下载于后台人员版本相同的版本的包的源码包,直接把源码直接拿来用。别忘了改了包名!

费了半天劲重新导包,发现还是不能用,Language.java抛出来的问题,Application启动时候找到了我们的这个Language而没有用系统的,就出了这个操蛋的问题。我们只要编解码功能,所以直接把这个包删掉就好了。

最后完美运行!开森。我的目录结构为:

=========================》

上面如果访问不了,可以访问  commons-codec-1.6-bin.zip

原文地址:https://www.cnblogs.com/jooy/p/9146527.html

时间: 2024-10-19 15:08:03

Android中使用commons-codec-1.6.jar 进行Base64编解码出现的问题的相关文章

Base64编解码Android和ios的例子,补充JNI中的例子

1.在Android中java层提供了工具类:android.util.Base64; 里面都是静态方法,方便直接使用: 使用方法如下: Java代码   // Base64 编码: byte [] encode = Base64.encode("Hello, World".getBytes(), Base64.DEFAULT); String enc = new String(encode); Log.d("","base 64 encode = &qu

Android音频开发(5):音频数据的编解码

前面四篇文章分别介绍了音频开发必备的基础知识.如何采集一帧音频.如何播放一帧音频.如何存储和解析wav格式的文件,建议有兴趣的小伙伴们先读一读,本文则重点关注如何对一帧音频数据进行编码和解码. 1. Android 官方的 MediaCodec API 首先,我们了解一下 Android 官方提供的音频编解码的 API,即 MediaCodec 类,该 API 是在 Andorid 4.1 (API 16) 版本引入的,因此只能工作于 Android 4.1 以上的手机上. 1.1 MediaC

Android实战技巧之三十七:图片的Base64编解码

通常用Base64这种编解码方式将二进制数据转换成可见的字符串格式,就是我们常说的大串,10块钱一串的那种,^_^. Android的android.util包下直接提供了一个功能十分完备的Base64类供我们使用,下面就演示一下如何将一张图片进行Base64的编解码. 1.找到那张图片 public void onEncodeClicked(View view) { //select picture Intent intent = new Intent(); intent.setType("i

Base64编解码中的坑

本文主要针对.net 中的System.Web.ServerUtility.UrlTokenEncode()/UrlTokenDecode()进行解释 在巨硬的源码文档中找到4.6.2的释义: https://referencesource.microsoft.com/#System.Web/Util/HttpEncoder.cs,0e3cb83cf51ca334 通过分析可知 1:最后一个'='被编码成一个由源字符串与其长度差的加密字符. 2:'+' to '-','/' to '_' 相信看

在C语言中使用Libb64进行Base64编解码

Libb64下载地址http://sourceforge.net/projects/libb64 以下为Demo CLibb64Demo.c #include <stdio.h> #include <string.h> #include "libb64/cencode.h" #include "libb64/cdecode.h" void base64EncodeString(const char *textToEncode, char *b

Android 中图片压缩分析(上)

作者: shawnzhao,QQ音乐技术团队一员 一.前言 在 Android 中进行图片压缩是非常常见的开发场景,主要的压缩方法有两种:其一是质量压缩,其二是下采样压缩. 前者是在不改变图片尺寸的情况下,改变图片的存储体积,而后者则是降低图像尺寸,达到相同目的. 由于本文的篇幅问题,分为上下两篇发布. 二.Android 质量压缩逻辑 在Android中,对图片进行质量压缩,通常我们的实现方式如下所示: ByteArrayOutputStream outputStream = new Byte

Commons Codec基本使用(转载)

在实际的应用中,我们经常需要对字符串进行编解码,Apache Commons家族中的Commons Codec就提供了一些公共的编解码实现,比如Base64, Hex, MD5,Phonetic and URLs等等. 一.官方网址: http://commons.apache.org/codec/ 二.例子 1.  Base64编解码 private static String encodeTest(String str){ Base64 base64 = new Base64(); try 

Android中apk动态载入技术研究(2)android插件化及实现

了解了android中类载入的前期知识点后,来看看android中DexClassLoader详细的实现 详细载入流程例如以下: 宿主程序会到文件系统比方SD卡中去载入APK[1],然后通过一个叫proxy的Activity去运行apk中的Activity 关于动态载入ap.理论上可用用到DexClassLoad.PathClassLoader.URLClassLoader; DexClassLoader: 能够载入文件系统上的jar.dex.apk PathClassLoader:能够载入 /

Android中apk动态加载技术研究(2)android插件化及实现

了解了android中类加载的前期知识点后,来看看android中DexClassLoader具体的实现 具体加载流程如下: 宿主程序会到文件系统比如SD卡中去加载APK[1],然后通过一个叫proxy的Activity去执行apk中的Activity 关于动态加载ap,理论上可用用到DexClassLoad.PathClassLoader.URLClassLoader; DexClassLoader: 可以加载文件系统上的jar.dex.apk PathClassLoader:可以加载 /da