Почему вызов StaticLayout.Builder вызывает исключение java.lang.NoClassDefFoundError?
Android M изменил сеттеры для StaticLayout, и вместо этого у нас есть шаблон Builder. Но со следующим кодом:
StaticLayout staticLayout = StaticLayout.Builder.obtain("Hello", 0, "Hello".length(), getTextPaint(), 100).build();
Я получаю следующее исключение:
Процесс: sharpdevs.com.legalapp, PID: 7695 java.lang.NoClassDefFoundError: Ошибка разрешения: Landroid/text/StaticLayout$Builder;
Я перепробовал все, это может быть ошибка Android или мне не хватает зависимости от библиотеки поддержки?
1 ответ
Решение
Похоже, что эти вопросы уже были решены в комментариях, поэтому добавить его в качестве фактического ответа...
StaticLayout.Builder
был добавлен в API 23, поэтому попытка запустить его на более раннем API вызовет исключение. Вы можете использовать стандарт StaticLayout
конструкторы для более ранних версий API.