Я переписываю свой проект, чтобы включить фрагменты для использования на планшетах. Я также решил начать использовать Android Studio с конвертации. Довольно прямолинейно, но я столкнулся с проблемой при довольно простой задаче установки пользовательского шрифта.
Я начал с этих: Пользовательские шрифты в Android и Список файлов в папке assets и ее подпапках и этот Установить собственный шрифт для фрагментов Android
В Eclipse мой класс расширил активность, и я без проблем сделал следующее в OnCreate
(имея каталог и файл «assets/FUT_R.ttf»)
TextView tv=(TextView)findViewById(R.id.someTextView);
Typeface font = Typeface.createFromAsset(getAssets(), "FUT_R.ttf");
tv.setTypeface(font);
теперь пытаюсь преобразовать эту активность в ActionBarActivity (фрагмент с библиотекой поддержки V7), и я изменил приведенный выше код на этот. (где view
— раздутый макет с одним Framelayout для телефонов)
TextView tv=(TextView) view.findViewById(R.id.someTextView);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "FUT_R.ttf");
tv.setTypeface(font);
и он падает во время выполнения с прекрасным java.lang.RuntimeException: native typeface cannot be made
, хотя я создал каталог и «активы» в моем новом проекте с FUT_R.ttf в его корне.
Чтобы подтвердить диспетчер активов, я попробовал этот код:
String[] f = null;
try {
f = getActivity().getAssets().list("");
}
catch (IOException e){
e.printStackTrace();
}
for(String f1:f){
Log.i("names",f1);
}
И получил следующий вывод:
07-26 07:40:40.134 2114-2114/com.myapp I/names: images
07-26 07:40:40.134 2114-2114/com.myapp I/names: sounds
07-26 07:40:40.134 2114-2114/com.myapp I/names: webkit
Я в замешательстве, потому что нигде в моем каталоге или проекте «активы» нет этих файлов и/или каталогов. Очевидно, ошибка заключается в том, что система не может найти мой файл шрифта. ЧТО Я ДЕЛАЮ НЕПРАВИЛЬНО? Буду очень признателен за любое направление, я потратил слишком много времени на эту глупую проблему.
Спасибо!