Android O 使用新的 android-studio 3.0 版提供字体目录,但是当在字体目录中放置字体文件并运行项目时,它在字体目录中的字体文件中出现错误。错误:任务“:app:mergeDebugResources”执行失败。
/home/ttuser4/Downloads/fontPractice/app/src/main/res/font/Dancing_Script.ttf:错误:文件名必须以.xml结尾
Android O 使用新的 android-studio 3.0 版提供字体目录,但是当在字体目录中放置字体文件并运行项目时,它在字体目录中的字体文件中出现错误。错误:任务“:app:mergeDebugResources”执行失败。
/home/ttuser4/Downloads/fontPractice/app/src/main/res/font/Dancing_Script.ttf:错误:文件名必须以.xml结尾
我也遇到了类似的问题。为了解决这个问题,我按照以下步骤操作。
distributionUrl
为project-dir/gradle/gradle-wrapper.properties
最新的 gradle 分发 url(您可以从此处获取 gradle 的最新可用性)以更新用于构建的 gradle 版本,如下所示。
distributionUrl=https://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip
com.android.tools.build:gradle
将根目录build.gradle
中的版本更新为最新版本,如下所示。(注意:下面提到的版本是发布答案时的最新版本。版本可能会在未来发生变化,所以请注意这一点。)构建脚本 { 存储库{ 中心() 行家{ 网址“https://maven.google.com” } } 依赖{ 类路径'com.android.tools.build:gradle:3.0.0-alpha4' } } 所有项目{ 存储库{ 中心() 行家{ 网址“https://maven.google.com” } } } 任务清理(类型:删除){ 删除 rootProject.buildDir }
它对我有用。让我知道你的评论。
我假设您使用的是较旧的构建工具插件,因此它不知道 res/font 和新的字体功能。
我有同样的问题,我更新到 gradle build tools 2.4.0-alpha7
但我在构建时收到一条错误消息,然后不得不设置环境变量
launchctl setenv ANDROID_DAILY_OVERRIDE <your-value-on-error-message>
假设您已经打开了 Android Studio 项目。
右键单击res
目录,然后选择New > Android Resource Directory
.
选择资源目录“字体”。
错误:任务“:app:mergeDebugResources”执行失败。res/font/Pacifico-Font.ttf:错误:'P' 不是有效的基于文件的资源名称字符:基于文件的资源名称必须仅包含小写 az、0-9 或下划线
当我将其更改为 时pacifico.ttf
,它起作用了。
我在使用“pacifico.ttf”字体的 Android Studio 3.0 Preview 上遵循了完全相同的步骤,它对我有用。
如果您遇到任何错误,请清理项目一次,然后再次运行它。
如果您仍然遇到问题,请告诉我。
您可以添加任何格式的字体,但您必须创建一个Font Family
xml 文件才能在 xml 布局文件中应用这些字体。字体系列是一个 XML 文件,其中包含多个字体文件及其样式和粗细详细信息。您可以将字体系列作为一个单元进行访问。
要创建字体系列,请在 Android Studio 中执行以下步骤:
右键单击字体文件夹,然后转到新建 > 字体资源文件。将出现新建资源文件窗口。
输入文件名,然后单击“确定”。新字体资源 XML 在编辑器中打开。
将每个字体文件、样式和粗细属性包含在元素中。以下 XML 说明了在字体资源 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/lobster_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/lobster_italic" />
</font-family>
然后,您可以将此字体系列添加到布局中包含文本的任何元素。就像在这个例子中它适用于TextView
,
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/lobster"/>