Android 上的 Apache Commons 编解码器:找不到方法

2023-11-23

今天我尝试将 apache.commons.codec 包包含在我的 Android 应用程序中,但无法运行它。 Android 无法找到方法 ord.apache.commons.codec.binary.* 并在 DDMS 中输出以下错误

01-12 08:41:48.161:错误/dalvikvm(457):找不到方法org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString,从方法com.dqminh.app.util.Util.sendRequest引用

01-12 08:41:48.161: WARN/dalvikvm(457): VFY: 无法解析静态方法 10146: Lorg/apache/commons/codec/binary/Base64;.encodeBase64URLSafeString ([B)Ljava/lang/String;

01-12 08:41:48.161: WARN/dalvikvm(457): VFY: 拒绝 0x0004 处的操作码 0x71

关于如何解决这个问题的任何线索?多谢。


我在使用 android 时遇到了类似的问题OAuth 库我正在发展。

我也从 android 那里得到了这个,虽然我已经包括了apache.commons.codec在类路径中,一个特定的方法(encodeBase64String) 没找到。

检查javadocs,两种方法都声称是仅限 1.4 及更高版本,所以我的猜测是 android 已经包含了旧版本commons.codec这些方法确实是未定义的。

我的解决方案是使用旧方法,如下所示:

String encodedString = new String(Base64.encodeBase64('string to encode'));

您要使用的方法有所不同,因为它将 + 和 / 替换为 url 安全值 - 和 _。所以你可能会使用类似的东西:

String encodedString = new String(Base64.encodeBase64('string to encode'));
String safeString = encodedString.replace('+','-').replace('/','_');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 上的 Apache Commons 编解码器:找不到方法 的相关文章