0

我正在为 android 4.4 及更高版本构建一个简单的应用程序,我有一种使用 apache-commons-codec 库解码 base64 字符串的方法。

import org.apache.commons.codec.binary.Base64;

public static String decodeBase64(String toDecode) {
    byte[] decoded = Base64.decodeBase64(toDecode);

    return new String(decoded);
}

但是当我从主调用此静态方法时(如 className.decodeBase64(VAR)),我收到以下错误。 错误日志

我目前正在使用 jdk 8 和最新版本的 android studio。我知道 jdk8 实现了 base64 编码器/解码器,但我不能使用它,因为我仅限于编程到 8.0 的最新 android 版本

4

2 回答 2

0

经过两天的寻找,我找到了一个不错的解决方案。

只需要将 apache.commons 替换为 android.util.Base64,谁会说...

该方法如下所示:

import android.util.Base64;

public static String DecodeBase64(String toDecode){
    byte[] decodeValue = Base64.decode(toDecode, Base64.DEFAULT);
    return new String(decodeValue);
}

另外,如果有人知道如何解决原始错误并请解释为什么会发生这种情况,这会有所帮助

于 2019-11-06T15:51:02.187 回答
0

这可能是库版本的问题。commons-codec您在build.gradle文件中使用哪个版本?尝试将其更新到最新版本,即1.13. 这也可能是您的问题的解决方案: Apache Commons Codec with Android: could not find method

于 2019-11-06T15:41:14.473 回答