@boristhecat

Как определить, совместима ли библиотека/зависимость с устройствами, SDK версия которых равна {minSdkVersion}?

Как определить, совместима ли библиотека/зависимость с устройствами, 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'е, можно сказать, новичок.
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы