android-版本大坑之ArrayList#sort()
今天测试用 OPPO RS PLUS 安卓6的系统,测试APK,崩溃。
定位到代码是:
错误信息:
没有这个类存在?那肯定就是系统版本问题导致的了。为什么 android studio 没有报api的版本错误呢?
我设置的 minSdkVersion 是 21,手机系统是安卓 6,安卓6对应的api level是23,大于21。按道理说我的APK完全兼容,而且Android studio也没有报错。
在网上查了一下,答案如链接:https://stackoverflow.com/questions/38951218/java-lang-nosuchmethoderror-no-interface-method-sortljava-util-comparator-ex/38951385
意思是,ArrayList#sort()这个方法是安卓 api level 24才加入的,安卓6的 api level是23,所以运行在 OPPO RS PLUS的安卓6系统上,找不到类崩溃了。然后用Collectors.sort()这个方法代替就好。
这个问题我是解决了。但是我心里却很不安。android api 兼容问题,还会多少个像ArrayList#sort()这样的api呢?android studio根本就不会提示这样api版本兼容错误。
怎么办。。。