【问题标题】:After trying to decode Base64, reciving E/AndroidRuntime: FATAL EXCEPTION: main尝试解码 Base64 后,接收 E/AndroidRuntime: FATAL EXCEPTION: main
【发布时间】:2020-03-03 03:03:20
【问题描述】:

我正在为 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)),我收到以下错误。 error log

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

【问题讨论】:

    标签: java base64 apache-commons-codec


    【解决方案1】:

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

    只需要将 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);
    }
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回复,我已经尝试过了。也不工作。我尝试的第二个选项是将 jar 文件从 Comms 导​​入到项目中。但不工作
      猜你喜欢
      • 2017-02-18
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多