Android调用commons-codec-1.13.jar包报错java.lang.NoSuchMethodError: No static method encodeHexString([B)L

需求是:在网上有个图片。需要不断的请求。发现图片改变了就要从新加载图片。
方法:   想到的方法是判断图片的md5值。md5发生改变了。就是图片变了就更新图片、

然后就搜索到:commons-codec-1.13.jar 这个包里有方法可以直接取到网络上图片的md5值。

首先用了这个方法:

//报错的方法
public String getMd5(String path) {
    URL url = null;
    String md5Hex = "";
    try {
        url = new URL(path);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        InputStream in = conn.getInputStream();
        md5Hex = DigestUtils.md5Hex(in);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return md5Hex;
}

运行以后一直在抛出错误:No static method encodeHexString([B)Ljava/lang/String; in class Lorg/apache/commons/codec/binary/Hex; or its super classes (declaration of 'org.apache.commons.codec.binary.Hex' appears in /system/framework/org.apache.http.legacy.boot.jar)

通过查阅:https://blog.csdn.net/diandianxiyu_geek/article/details/79153703

                  https://cloud.tencent.com/developer/ask/83814

这两篇博客将方法改为:

//正确的方法
public String getMD5(String path) {
    URL url = null;
    String md5Hex = "";
    try {
        url = new URL(path);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        InputStream in = conn.getInputStream();
        byte[] bytes = DigestUtils.md5(in);
        md5Hex = new String(Hex.encodeHex(bytes));
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return md5Hex;
}

拿到了图片的md5值。没有报错。具体为什么报错。我看了半天还是没懂。如果有大神能看懂希望在评论里为小生解惑。非常感谢。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留白的云

感谢鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值