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版本兼容错误。

怎么办。。。

posted @ 2020-10-23 16:11  粤港澳工具人码农  阅读(638)  评论(0编辑  收藏  举报