Как определить, совместима ли библиотека/зависимость с устройствами, SDK версия которых равна {minSdkVersion}?
Вот, например, в Java 8 есть такие вещи, которыми нельзя пользоваться, если minSdkVersion твоего Android-приложения равен, к примеру, 16 (Stream API, класс StandardCharsets, метод String.join() и т. д.). Ради интереса попробовал сделать простенькую библиотеку, подключить её к своему проекту и запустить его на эмуляторе с API 22 (лень было скачивать 16). Её код:
import java.util.Arrays;
public final class Library {
private Library() {
}
public static void crash() {
Arrays.stream(new int[]{1, 2, 3}).close();
}
}
Вызвав метод crash(), как и ожидалось, получил ошибку:
java.lang.NoSuchMethodError: No static method stream([I)Ljava/util/stream/IntStream; in class Ljava/util/Arrays; or its super classes (declaration of 'java.util.Arrays' appears in /system/framework/core-libart.jar)
Теперь к вопросу.
Есть библиотека, изначально написанная на Java 8. minSdkVersion моего проекта равен 16. Есть ли способ, с помощью которого можно гарантированно определить, будет ли работать эта библиотека на старых андроидах?
Если что, извините. Я в Android'е, можно сказать, новичок.