Android开发:Java.lang.NoSuchMethodError:org.apache.commons.codec.binary.Base64.encodeBase64String()

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) 导

实际上,我正在开发一个带有加密的Android应用程序。当我使用Base64进行编码和解码时,我收到一个错误

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 is
sun.misc.base64解码器

方法已添加到Commons编解码器库的1.4版中

问题是Android框架包含这个类,运行时将使用它的版本(而不是你在应用程序中打包的类)。由于Commons编解码器的1.3版附带了框架,因此请求的方法不存在


查看我的答案,其中包括解决此问题的步骤。

@super-qua我是这个平台的新手。谢谢你帮我编辑这个问题。非常感谢!