Подтвердить что ты не робот

Свойство шрифта не найдено helvetica.ttf на леденец

По какой-то причине на леденец, я получаю эту ошибку, и поскольку леденец настолько новый, что я не могу понять, почему в любом месте, и я понятия не имею, как это понять. Спасибо заранее Ошибка Logcat:

java.lang.RuntimeException: Unable to start activity                                       
ComponentInfo{com.bent.MissionaryTracker/com.bent.MissionaryTracker.MainActivity}:          
java.lang.RuntimeException: Font asset not found helvetica.ttf
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.RuntimeException: Font asset not found helvetica.ttf
at android.graphics.Typeface.createFromAsset(Typeface.java:190)
at com.bent.MissionaryTracker.MainActivity.onCreate(MainActivity.java:57)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
... 10 more

РЕДАКТИРОВАТЬ: ЗДЕСЬ - КОД, ЧТОБЫ ПРОПУСКАЕТ ОШИБКУ

    title = (TextView) findViewById(R.id.title);


    Typeface font = Typeface.createFromAsset(getAssets(), "helvetica.ttf");
    title.setTypeface(font);

У меня есть helvetica.ttf в папке моих ресурсов в папках моего проекта.

EDIT: Это приложение работает на всех устройствах до 5.0, поэтому по какой-то причине 5.0 не распознает файл в моей папке с ресурсами.

Я попытался опубликовать снимок экрана в моей папке с ресурсами, но у меня недостаточно репутации для отправки изображений.

4b9b3361

Ответ 1

Если вы работаете в Android Studio, убедитесь, что папка вашего ресурса находится под основной записью, а не res Это сработало для меня

Ответ 2

У меня тоже была эта проблема, прежде чем я понял, что не добавил "fonts/" перед файлом .otf

 Typeface font = Typeface.createFromAsset(getAssets(),"fonts/TTMastersDEMOBlack.ttf");

Ответ 3

Это сработало для меня. В моем случае это не сработало, потому что я создал папку с ресурсами в res, а не в основном.

enter image description here

Ответ 4

Если смена директории не работает, это может быть связано с проблемой, уже исправленной командой Android, но не успела до 5.0. Здесь все объяснено:

https://code.google.com/p/android-developer-preview/issues/detail?id=608&thanks=608&ts=1404735239

Обходной путь (по крайней мере, для меня) - это исправить файлы шрифтов с помощью TTX, как указано в связанной проблеме.

Как заставить TTX работать, может быть немного хлопот, если у вас нет опыта python, поэтому я закончил загрузку Adobe AFDKO, который включает TTX. Вам нужно запустить "ttx yourfontfile.ttf", который превратит ваш файл в .ttx, а затем запустит его снова "ttx yourfontfile.ttx", чтобы получить новый .ttf, который работает с 5.0.

Ответ 5

Просто поместите папку с ресурсами в основной каталог. После этого выполните:

 Typeface typeface=Typeface.createFromAsset(getAssets(),"OpenSans-Light.ttf");
    textView.setTypeface(typeface);

Ответ 6

Я столкнулся с этим вопросом раньше. Я удалил x.ttf, а затем отменил удаление, попытался запустить без блокировки. Таким образом, мое исправление состояло только в том, чтобы удалить его и снова загрузить шрифт и вставить его в шрифты/папку, и все прекрасно работает.

Ответ 7

Очистите проект, это помогло мне в android 6.0

Ответ 8

Ок, ребята,

Я столкнулся с той же проблемой. Прежде всего, я сделал доказательство сбоя логики загрузки шрифта:

/**
 * Init method. This method must be called before any other call in this class.
 */
public static void init () {
    fontPlain  = createFont( "helvetica.ttf" , Typeface.NORMAL );
    fontBold   = createFont( "helveticab.ttf", Typeface.BOLD   );
}

/**
 * Load font from assets font folder.
 */
public static Typeface createFont (String font, int style) {
    Typeface typeface;
    try {
        AssetManager assets = Kit.getAppContext().getAssets();
        typeface = Typeface.createFromAsset( assets, "fonts" + File.separator + font );
    }
    catch (RuntimeException e) {
        // createFromAsset() will throw a RuntimeException in case of error.
        Log.e( Constants.TAG, "Unable to create font: " + font, e );
        typeface = Typeface.defaultFromStyle( style );
    }
    return typeface;
}

И затем я также скачал еще один шрифт из этого проекта в git:

https://github.com/dimanchec3/Tutoriapps-Android/blob/master/assets/Helvetica.ttf

Я понял, что мой старый шрифт был 56 КБ, а новый шрифт - 84 КБ. Я предполагаю, что у меня была более ранняя версия шрифта.

Перед использованием этого шрифта убедитесь, что у вас есть соответствующая лицензия.