使用 Android 的 "android:fontFamily" 时出现错误 "file name must end with .xml" O?

Getting error "file name must end with .xml" while using the "android:fontFamily" of Android O?

Android O 引入了一项新功能,XML 中的字体,它允许您将字体用作资源。我在 Android developer 提供的资源文件中创建 font 文件夹,但问题是我在使用 font 文件夹时收到 file name must end with .xml 错误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" />

请检查我在 res 中创建的 font 文件夹和 Montserrat_Regular.otf 文件

我在使用上面的时候出现如下错误,具体如下:

我已经搜索过了,但没有得到预期的结果,请查看:

1. First Link
2. Second Link
3. Third Link
4. Forth Link

并且 Font resource file 没有创建,因为我正在单击 Right-click the font folder and go to New > Font resource file。但是没有得到Font resource file的选项,请看下面:

Android Studio 2.4 支持您需要的 Android O 提供的所有新开发人员功能更新工作室

并创建XML文件

1) 右键单击​​字体文件夹并转到新建 > 字体资源文件。出现新资源文件 window。

2) 输入文件名,然后单击“确定”。新字体资源 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>

Android Studio 2.3.3 构建链不完全支持字体资源。 Android Studio 3.0+ 及其相关 Android 插件 Gradle 版本提供全面支持。届时,您将能够创建一个 font/ 资源目录,该目录与 layout/menu/

IOW,在您准备好升级到 Android Studio 3.0 之前先等等。

我在这个错误上浪费了一个小时,使用 AS 3.0 beta2,Gradle 4.x 和正确的构建工具。

原来我在名为 "fonts" 的文件夹中有一份字体副本。此文件夹未显示在 Android 项目视图中。阅读错误我没有发现 's'。给各位读者一个小小的提醒!

我刚遇到同样的问题,在寻找答案时,我来到了这个帖子。 我从 deverloper.android.com.

找到了解决方案
  1. Right click 'res' folder in Android Studio

  2. Choose 'new' > 'Android resource directory'

  3. Name it 'font'

  4. Inhere you should place your font (.ttf) files WITH ONLY a-z 0-9 and _ characters.

  5. Set your font (mine is called 'alegreyaregular.ttf') this way:

Typeface typeface = ResourcesCompat.getFont(this, R.font.alegreyaregular);
TextView textView.setTypeface(typeface);

我遇到了完全相同的错误 文件名必须以 .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'

Android工作室:

Android studio version 3.0.1.

干杯!

我遇到过同样的问题!! 只需更新您的 build.gradle 文件即可解决上述问题。

类路径'com.android.tools.build:gradle:3.0.1'

compileSdkVersion 26

buildToolsVersion '26.0.3'

将您的 AndroidStudio 更新到最新版本。

祝你今天愉快。

这是一种普遍性问题,我遇到这个问题时收到了错误消息

main\res\lib\poi-3.12-android-a.jar:错误:文件名必须以 .xml

结尾

我已经将这个 jar 文件放在资源文件夹 (res) 中,我删除了这个 jar 文件和文件夹,它得到了解决。 避免在 res 目录中出现任何不需要的 files/folder。