SKD19 vs SDK24 - 使用API​​记录为@since 1.8+

时间:2017-10-20 05:48:29

标签: android sdk

在我的应用中出现错误。 enter image description here

错误说 - " API的使用记录为@since 1.8 + .."。

应用程序在sdk 24上正常运行,但是当我在minSDK-19上运行它时,它只是在该错误行上崩溃,其中PriorityQueue已初始化。我检查了类PriorityQueue - 在API级别1上添加了。那么问题出在哪里?

问:如何解决?

2 个答案:

答案 0 :(得分:4)

在API 24中添加了PriorityQueue (Comparator comparator),因此它不能与旧版本向后兼容(minsdk应为24) 可以使用summary下提到的除此之外的任何其他版本的构造函数。

虽然最接近当前使用的是初始容量

PriorityQueue (int initialCapacity, Comparator comparator)

其他解决方案是 您可以对当前的API进行检查,如

PriorityQueue<Cell> pq;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Nougat) {
      pq = new  PriorityQueue(new CellComparator());
}else{
      pq = new  PriorityQueue(50/*initial capacity*/,new CellComparator());
}

其中initial capacity表示:PQ内部使用默认容量为11的数组,因此如果您事先了解了元素数量,那么最好定义队列数组的初始容量,因为它可以防止在运行时重新创建更大的数组和复制数组元素

答案 1 :(得分:2)

问题不在于line,而在于使用构造函数。根据{{​​3}}

上的文档

here

带有比较器的构造函数在API 24中添加,因此不具有较低的API级别。

您可以尝试以下enter image description here

layout