在Android应用程序中使用commonc编解码器的NoSuchMethodError

DVV*_*DVV 16 eclipse base64 android apache-commons-codec

我按照这里的说明在eclipse中为我的Android应用程序添加了来自apache.org(commons-codec-1.4.jar)的公共编解码器.代码中没有错误.但是当我运行应用程序并调用使用编解码器的函数时,应用程序停止并需要关闭.

在logCat中说:

Android Runtime:java.lang.NoSuchMethodError:org.apache.commons.codec.binary.Base64.encodeBase64String

代码行是:String tmpStr = Base64.encodeBase64String(msg); // msg是一个byte []

该应用程序适用于最低SDK版本= 7(Android 2.1),因此我无法使用Android Base64

不知道怎样才能解决问题?

Nic*_*ckT 8

我无法让公共编解码器在2.1仿真器上运行.我最终放弃了自己,复制代码:

Base64编码器/解码器

它只有一百多行左右.


zar*_*oss 8

我遇到了完全相同的问题.所以我开始浏览android源代码,因为事实证明Don猜测有一个org.apache.commons.code.binary实现的Android是正确的.你可以,但它的访问能力是错误​​的,但它的apache公共版本1.2,而不是版本1.4甚至1.5.你可以在android 源代码中看到你自己.

另外作为一个注释,这个问题是这篇文章的重复.


Nic*_*ion 0

您遇到问题的原因是这些指令是错误的,但必须存在不同版本的 commons-codec 或 Base64 类。

我的理解是,您需要将 jar 文件放入项目根目录的“libs”目录中,以确保它自动出现在最终的 apk 中。将其放在那里后,右键单击 jar 文件,然后转到“构建路径”->“添加到构建路径”。应该从那里开始工作。