android 报错 java.lang.NoSuchMethodError: No interface method sort

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_38184748/article/details/90643814

android 报错 java.lang.NoSuchMethodError: No interface method sort

前言

本来昨天高高兴兴测试完二维码扫描的demo,今天移植到项目里。不到三分钟,测试那边就发bug过来了。。。what???
在这里插入图片描述
让人怪不好意思的。。。。。

java.lang.NoSuchMethodError: No interface method sort(Ljava/util/Comparator;)V in class Ljava/util/List; or its super classes (declaration of 'java.util.List' appears in /system/framework/core-libart.jar)
        at com.google.zxing.qrcode.detector.FinderPatternFinder.selectBestPatterns(FinderPatternFinder.java:616)
        at com.google.zxing.qrcode.detector.FinderPatternFinder.find(FinderPatternFinder.java:164)
        at com.google.zxing.qrcode.detector.Detector.detect(Detector.java:81)
        at com.google.zxing.qrcode.QRCodeReader.decode(QRCodeReader.java:77)
        at com.google.zxing.MultiFormatReader.decodeInternal(MultiFormatReader.java:173)
        at com.google.zxing.MultiFormatReader.decodeWithState(MultiFormatReader.java:87)
        at org.rydc.smart8things.zxing.DecodeHandler.decode(DecodeHandler.java:86)
        at org.rydc.smart8things.zxing.DecodeHandler.handleMessage(DecodeHandler.java:62)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:207)
        at org.rydc.smart8things.zxing.DecodeThread.run(DecodeThread.java:112)

解决

报错结果一顿解析,我们能知道是一个方法在当前系统上还没有。
(其实我是谷歌出来的

以下是找到的解析

ArrayList#sort() was added in API level 24 and runtimes below API level 24 don't have that method. Looks like your compileSdkVersion is at 24 so you got the code to compile in the first place.

Use Collections.sort(list, comparator) instead.

嘿嘿,好像好简单
只需要将原来的语句改成Collections.sort(list, comparator)这个方法就可以了。
举例:
原来的 list.sort(comparator);
修改成 Collections.sort(list, comparator)

但是但是
事情总不是那么简单的,因为报错的地方在ZXING的依赖库里。。。
最后瞎猫捉老鼠把原来的ZXING 3.4.0降到3.3.3,竟然就没事了。

完事

猜你喜欢

转载自blog.csdn.net/sinat_38184748/article/details/90643814