Получение имени файла ошибки должно заканчиваться на .xml при использовании android:fontFamily Android O?

Android O представляет новую функцию «Шрифты в XML», которая позволяет использовать шрифты в качестве ресурсов. И я создаю папку font в файле ресурсов, предоставленную разработчиком Android, но проблема в том, что я получаю сообщение об ошибке file name must end with .xml при использовании папки font, предоставленной в выпуске Android O.

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

 <TextView
   android:id="@+id/txtMsgCount"
   android:layout_width="wrap_content"
   android:layout_height="16dp"
   android:background="@drawable/msg_count"
   android:gravity="center"
   android:text="123"
   android:fontFamily="@font/Montserrat_Regular" ////IT IS MY FONT STYLE
   android:textColor="@android:color/white"
   android:textSize="10sp" />

И, пожалуйста, проверьте папку font, которую я создал в res с файлом Montserrat_Regular.otf.

Моя папка шрифтов со стилем шрифта

Я получаю следующую ошибку при использовании выше, которые заключаются в следующем:

Ошибка получения

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

1. Первая ссылка
2. Вторая ссылка
3. Третья ссылка
4. Четвертая ссылка

И Font resource file не создается, когда я нажимаю Right-click the font folder and go to New > Font resource file. Но не получая вариант Font resource file, пожалуйста, проверьте ниже:

введите описание изображения здесь


person Ravindra Kushwaha    schedule 11.08.2017    source источник
comment
Какую версию Android Studio вы используете?   -  person CommonsWare    schedule 11.08.2017
comment
где находится ваше семейство шрифтов xml   -  person akhilesh0707    schedule 11.08.2017
comment
Я использую 2.3.3 @CommonsWare   -  person Ravindra Kushwaha    schedule 11.08.2017
comment
Да, я читал об этом. Это не позволяет мне создавать семейство шрифтов в папке шрифтов.   -  person Ravindra Kushwaha    schedule 11.08.2017
comment
@AkhileshPatil У меня нет возможности создать семейство шрифтов в папке шрифтов.   -  person Ravindra Kushwaha    schedule 11.08.2017
comment
stackoverflow.com/ вопросы/43152907/   -  person Mike M.    schedule 11.08.2017
comment
@МайкМ. Моя проблема в том, что я не могу создать «Файл ресурсов шрифта», когда я щелкаю правой кнопкой мыши папку font   -  person Ravindra Kushwaha    schedule 11.08.2017
comment
Да, вы сказали, что используете Android Studio версии 2.3.3. Вам нужно 2,4, как минимум.   -  person Mike M.    schedule 11.08.2017
comment
Он не обновляется. Я проверил программу обновления. Он говорит, что у вас последняя версия.   -  person Ravindra Kushwaha    schedule 11.08.2017
comment
developer.android.com/studio/archive.html, developer.android.com/studio/preview   -  person Mike M.    schedule 11.08.2017
comment
Вы нашли способ сделать это?   -  person Mohit Goel    schedule 24.08.2017
comment
@MohitGoel Вам нужно обновить Andoid studio 3. 0, чтобы получить это .. В настоящее время какую версию студии Android вы используете?   -  person Ravindra Kushwaha    schedule 24.08.2017
comment
Я знаю это. но я работаю над живым проектом. Поэтому я не могу рисковать, используя бета-версию.   -  person Mohit Goel    schedule 24.08.2017
comment
Нужно ли мне использовать старый способ?   -  person Mohit Goel    schedule 24.08.2017
comment
Пока чем ДА.. Это не повредит тебе. :)   -  person Ravindra Kushwaha    schedule 24.08.2017
comment
Я пытаюсь сделать то же самое, но выдает следующую ошибку: Ошибка: (417) Шрифт атрибута уже определен с несовместимым форматом.   -  person Mohit Goel    schedule 24.08.2017
comment
Я также использую maven {url 'maven.google.com'}   -  person Mohit Goel    schedule 24.08.2017
comment
@MohitGoel Вам нужно удалить папку со шрифтами, если вы используете традиционный способ ... И поместите файл в папку assest   -  person Ravindra Kushwaha    schedule 24.08.2017
comment
Давайте продолжим обсуждение в чате.   -  person Mohit Goel    schedule 24.08.2017
comment
Извините, я сейчас занят.. Пингую вам, как освободится   -  person Ravindra Kushwaha    schedule 24.08.2017
comment
Спасибо за вашу помощь. готово.   -  person Mohit Goel    schedule 24.08.2017
comment
@MohitGoel Приятно слышать dost.. Приятного программирования :)   -  person Ravindra Kushwaha    schedule 24.08.2017


Ответы (7)


Ресурсы шрифтов не полностью поддерживаются цепочкой сборки Android Studio 2.3.3. Полная поддержка поставляется с Android Studio 3.0+ и связанным с ним Android-плагином для версии Gradle. В этот момент вы сможете создать каталог ресурсов font/, который идет рядом с layout/, menu/ и т. д.

IOW, отложите это, пока не будете готовы перейти на Android Studio 3.0.

person CommonsWare    schedule 11.08.2017
comment
По-видимому, canary был переименован в предварительную версию, а сборка Android Studio была переименована в бета-версию: tools. android.com/download/studio/canary/latest - person M66B; 11.08.2017
comment
Это означает, что на 2.3.3 нет другого пути.. Я также использую kotlin, версия которого 3.0 Beta .. Я думаю, что он будет работать на этом... Но моя проблема не решена, потому что мне нужно поработать над Andorid .. Спасибо для входа..:) - person Ravindra Kushwaha; 11.08.2017
comment
@ M66B: Должно быть, они подняли Android Studio 3.0 до бета-версии 1, пока я спал. Последнее, что я знал, они были на Канарейке 9 или около того. - person CommonsWare; 11.08.2017
comment
@RavindraKushwaha: означает, что на 2.3.3 нет другого пути - вы можете попробовать бета-версию плагина 3.0 с AS 2.3.3, но я сильно подозреваю, что это не сработает. - person CommonsWare; 11.08.2017
comment
@CommonsWare выглядит более структурно, поскольку канареечная страница теперь относится к странице предварительного просмотра. Это было изменено вчера (CET) или ранее. Хотя, с другой стороны, эта страница предполагает обратное: developer.android.com/studio/archive.html - person M66B; 11.08.2017
comment
@CommonsWare Только что проверил, использование версии 3.0.0-beta1 плагина Gradle не работает с AS 2.3.3. Синхронизация Gradle завершается с ошибкой Error:This Gradle plugin requires Studio 3.0 minimum. - person SpaceBison; 30.08.2017

Я потерял час из-за этой ошибки, используя AS 3.0 beta2, Gradle 4.x и правильные инструменты сборки.

Оказалось, что у меня была копия шрифтов в папке под названием «шрифты». Эта папка не отображается в представлении проекта Android. И, читая ошибку, я не уловил букву «s». Небольшое напоминание для вас, читатели!

person PieterAelse    schedule 31.08.2017
comment
Всем привет. Некоторые люди в нашем сообществе иногда говорят, что каждый раз, когда они видят гендерные предположения об инженерах-программистах, они беспокоятся о том, что люди чувствуют себя исключенными. Интересно, не могли бы вы попробовать не добавлять в свои посты приветствия и местоимения, ориентированные на мужчин, чтобы создать более приветливую атмосферу? Спасибо. - person halfer; 01.09.2017
comment
Собственно, это был и мой случай. Интересно, почему это было продублировано. - person arslancharyev31; 28.09.2017
comment
В моем случае это был неправильно названный каталог значений. Так что просто просканируйте свою структуру на наличие плохого имени. - person VipulKumar; 06.04.2020

У меня была такая же проблема, и в поисках ответа я пришел сюда, в эту тему. Я нашел решение от разработчика .android.com.

  1. Щелкните правой кнопкой мыши папку «res» в Android Studio.

  2. Выберите «новый» › «Каталог ресурсов Android»

  3. Назовите его «шрифт»

  4. Здесь вы должны поместить файлы шрифтов (.ttf) ТОЛЬКО С символами a-z 0-9 и _.

  5. Установите свой шрифт (мой называется 'alegreyaregular.ttf') следующим образом:

Typeface typeface = ResourcesCompat.getFont(this, R.font.alegreyaregular);
TextView textView.setTypeface(typeface);
person Kees de Vriesch    schedule 17.12.2017
comment
Привет!! Посмотри на это. Я уже делал то, что предлагали все остальные ответы, но это все еще не работало. Это единственное, что сработало. - person uesports135; 09.06.2018

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

Используйте эти настройки в Gradle на уровне проекта:

compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
    applicationId "com.company.app"
    minSdkVersion 21
    targetSdkVersion 26
...
}

Используйте эти настройки в Gradle уровня приложения:

classpath 'com.android.tools.build:gradle:3.0.1'

Stidio для Android:

Android studio version 3.0.1.

Ваше здоровье!

person Ali Akram    schedule 24.01.2018

Я столкнулся с такой же проблемой!! Просто обновите файл build.gradle, чтобы решить вышеуказанную проблему.

путь к классам 'com.android.tools.build: gradle: 3.0.1'

compileSdkВерсия 26

buildToolsVersion '26.0.3'

Обновите AndroidStudio до последней версии.

Хорошего вам дня.

person Venkatesh Nellore    schedule 05.03.2018

Android Studio 2.4 включает поддержку всех новых функций разработчика, доступных в Android O, необходимых для обновления студии.

И создайте XML-файл.

1) Щелкните правой кнопкой мыши папку шрифта и выберите «Создать» > «Файл ресурса шрифта». Появится окно Новый файл ресурсов.

2) Введите имя файла и нажмите OK. XML-файл нового ресурса шрифта откроется в редакторе.

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
    android:fontStyle="normal"
    android:fontWeight="400"
    android:font="@font/Montserrat_Regular.otf" />

</font-family>
person akhilesh0707    schedule 11.08.2017
comment
Я не могу создать Creating a font family в моей папке font. Это не дает мне возможности. Я знаю это. - person Ravindra Kushwaha; 11.08.2017
comment
Я только что проверил наличие обновлений, это не позволяет мне обновлять мою студию Android с 2.3.3 to 2.4 .. Он говорит, что у вас обновленная версия - person Ravindra Kushwaha; 11.08.2017
comment
Спасибо за вклад ..Проблема не решена :(..+1 за усилия - person Ravindra Kushwaha; 11.08.2017

Это своего рода общая проблема, и я столкнулся с этим сообщением об ошибке.

main\res\lib\poi-3.12-android-a.jar: ошибка: имя файла должно заканчиваться на .xml

Я поместил этот файл jar в папку ресурсов (res), я удалил этот файл jar и папку, в которой он разрешился. Избегайте нежелательных файлов/папок внутри каталога res.

person user3004692    schedule 05.05.2020