自定义属性未在样式和主题中解析

Posted

技术标签:

【中文标题】自定义属性未在样式和主题中解析【英文标题】:Custom attribute not resolved inside styles and theme 【发布时间】:2019-11-28 14:45:05 【问题描述】:

我有 2-3 年前开发的带有自定义主题的 android 应用程序。 我的 attr.xml 资源文件中有这个样式:

<declare-styleable name="EVETextViewPlus">
    <attr name="customFont" format="string" />
    <attr name="pageStripFont" format="string" />
</declare-styleable>

我已经在我的 style_warm.xml 资源文件中使用了它:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
    <style name="style_display_page_title_warm">
        <item name="my.app.package.:pageStripFont">fonts/b_titr.ttf</item>
        <item name="android:textSize">25dp</item>
        <item name="android:textColor">@color/colorDisplayPageTitle</item>
    </style>
....

当我要签署我的应用程序时,它会检查错误和提示:

无法解析符号“my.app.package:pageStripFont”

我应该提到my.app.package 是我在清单中定义的应用程序的包名。

这段代码直到 2 年前都在工作,当我将应用程序迁移到最新的 android SDK 工具 Gradle 和 androidX 时,最终出现了这个错误,我不知道出了什么问题。

我确实看到了这个answer、this one,但我找不到问题所在。

我还检查了this 和this,它们看起来更相关,但我没有意识到如何修复错误。

【问题讨论】:

【参考方案1】:

替换这个

<item name="my.app.package.:pageStripFont">fonts/b_titr.ttf</item>

有了这个

<item name="pageStripFont">fonts/b_titr.ttf</item>

【讨论】:

以上是关于自定义属性未在样式和主题中解析的主要内容,如果未能解决你的问题,请参考以下文章

自定义验证属性未在模型上验证 - WebAPI C# 和 JSON

从自定义主题继承所需的 XML 属性

Android 自定义View

属性标题未在 xib 文件的 UIButton 中加载自定义字体

CSS自定义属性与前端页面的主题切换

UIImageView 未在自定义 UITableViewCell 中显示图像