2015-09-17 13 views
2

Android M изменил настройки для StaticLayout, и вместо этого у нас есть шаблон Builder. Но со следующим кодом:Почему вызов StaticLayout.Builder вызывает исключение java.lang.NoClassDefFoundError?

StaticLayout staticLayout = StaticLayout.Builder.obtain("Hello", 0, "Hello".length(), getTextPaint(), 100).build(); 

я получаю следующее исключение:

Process: sharpdevs.com.legalapp, PID: 7695 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/text/StaticLayout$Builder;

Я пробовал все, это могло быть андроидом ошибку или у меня отсутствует зависимость библиотеки поддержки?

+1

Это может показаться немного очевидным, но вы уверены, что используете код на устройстве Android M/6.0? –

+0

Вы правы, я не знаю, как я пропустил очевидное, подумал, что я запускаю эмулятор API 23. – stefdev777

ответ

1

Похоже, эти вопросы уже решены в комментариях, так, чтобы добавить его в качестве действительного ответа ...

StaticLayout.Builder был добавлен в API 23, таким образом пытаясь запустить его на более ранний API вызовет исключение. Вы можете использовать стандартные конструкторы StaticLayout для более ранних версий API.