Android开发:Java.lang.NoSuchMethodError:org.apache.commons.codec.binary.Base64.encodeBase64String()
实际上,我正在开发一个带有加密的Android应用程序。当我使用Base64进行编码和解码时,我收到一个错误Android开发:Java.lang.NoSuchMethodError:org.apache.commons.codec.binary.Base64.encodeBase64String(),android,base64,nosuchmethod,Android,Base64,Nosuchmethod,实际上,我正在开发一个带有加密的Android应用程序。当我使用Base64进行编码和解码时,我收到一个错误 Java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String() 在运行时 我知道有一些关于Stackflow的帖子已经讨论了问题的主要原因==>commons编解码器有不同的版本 有人能详细描述一下如何解决这个问题吗?(到目前为止,我知道有两种解决方案是可行的) 1) 导
Java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String()
在运行时
我知道有一些关于Stackflow的帖子已经讨论了问题的主要原因==>commons编解码器有不同的版本
有人能详细描述一下如何解决这个问题吗?(到目前为止,我知道有两种解决方案是可行的)
1) 导入org.apache.commons.codec.binary.Base64
作为客户端命名包2) 更新commons(编解码器)的默认库 目前,我正在使用adt-bundle-windows-x86-20131030开发我的应用程序。 下面是一些代码供参考
import org.apache.commons.codec.binary.Base64;
public static String receiveSetup(String messageFromActivity)
throws Exception {
SecretKey tempKey2 = DES.loadKey();
byte[] test2 = Base64.decodeBase64(messageFromActivity);
byte[] printString = DES.decrypt(test2, tempKey2);
String str = new String(printString, "UTF-8");
return str;
}
您是否知道
sun.misc.base64解码器jar文件
只需将此jar文件包含在您的项目中即可。dude name issun.misc.base64解码器
方法已添加到Commons编解码器库的1.4版中
问题是Android框架包含这个类,运行时将使用它的版本(而不是你在应用程序中打包的类)。由于Commons编解码器的1.3版附带了框架,因此请求的方法不存在
查看我的答案,其中包括解决此问题的步骤。@super-qua我是这个平台的新手。谢谢你帮我编辑这个问题。非常感谢!