Android 中的 Button 类膨胀错误

2023-11-24

我有一个最小 sdk 16 到 23 的应用程序。我想尽可能多地使用 Material design。它还必须是全屏应用程序。包含 AppCompat 支持库。现在我有一些按钮的登录活动:

<Button
    android:id="@+id/act_logon_btn_logon"
    style="@style/ButtonDefault"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/act_logon_logon" />

样式如下(values/styles.xml):

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar.FullScreen"></style>

<style name="AppTheme" parent="AppThemeBase"></style>

<style name="ButtonDefault" parent="Widget.AppCompat.Button">
    <item name="android:textSize">?attr/font_medium</item>
</style>

<style name="FontStyle"></style>

<style name="FontStyle.Small">
    <item name="font_small">12sp</item>
    <item name="font_medium">14sp</item>
    <item name="font_large">16sp</item>
</style>

<style name="FontStyle.Medium">
    <item name="font_small">16sp</item>
    <item name="font_medium">18sp</item>
    <item name="font_large">20sp</item>
</style>

<style name="FontStyle.Large">
    <item name="font_small">20sp</item>
    <item name="font_medium">22sp</item>
    <item name="font_large">24sp</item>
</style>

在值/属性中:

<declare-styleable name="FontStyle">
    <attr name="font_small" format="dimension" />
    <attr name="font_medium" format="dimension" />
    <attr name="font_large" format="dimension" />
</declare-styleable>

属性中字体定义如所描述的here。我不明白的行为是,当登录活动打开时,一切正常,没有例外。但是,当我从登录活动中打开另一个包含片段的活动并且该片段具有这种样式的按钮时,我收到一个异常,提示“错误膨胀类按钮”。当我删除textSize来自 ButtonDefault 样式的属性,一切正常。为什么它在某处有效而在某处无效?是不是自定义属性有问题?

我尝试使用该样式创建values-v21/styles.xml,但没有效果。

您还能解释一下以下父样式定义之间的差异吗?我迷路了。

parent="Widget.AppCompat.Button"
parent="@style/Widget.AppCompat.Button"
parent="android:Widget.Button"
parent="android:Widget.AppCompat.Button"
parent="android:Widget.Material.Button"
parent="android:style/Widget.Material.Button"

谢谢。

EDIT 1- 例外:

12-17 10:56:53.950: E/AndroidRuntime(7251): FATAL EXCEPTION: main
12-17 10:56:53.950: E/AndroidRuntime(7251): Process: test.android, PID: 7251
12-17 10:56:53.950: E/AndroidRuntime(7251): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.dci.android/test.dci.android.view.activity.TransactionActivity}: android.view.InflateException: Binary XML file line #49: Error inflating class Button
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2702)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.ActivityThread.access$900(ActivityThread.java:177)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.os.Handler.dispatchMessage(Handler.java:102)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.os.Looper.loop(Looper.java:145)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.ActivityThread.main(ActivityThread.java:5951)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at java.lang.reflect.Method.invoke(Native Method)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at java.lang.reflect.Method.invoke(Method.java:372)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
12-17 10:56:53.950: E/AndroidRuntime(7251): Caused by: android.view.InflateException: Binary XML file line #49: Error inflating class Button
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at test.dci.android.view.fragment.TransactionFragment.onCreateView(TransactionFragment.java:71)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1036)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1226)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1328)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2284)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:314)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at test.dci.android.view.activity.TransactionActivity.onCreateView(TransactionActivity.java:1)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:740)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at test.dci.android.view.activity.TransactionActivity.onCreate(TransactionActivity.java:31)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.Activity.performCreate(Activity.java:6289)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2655)
12-17 10:56:53.950: E/AndroidRuntime(7251):     ... 10 more
12-17 10:56:53.950: E/AndroidRuntime(7251): Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 12
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:582)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.widget.TextView.<init>(TextView.java:1400)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.widget.Button.<init>(Button.java:115)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.widget.Button.<init>(Button.java:108)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:58)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:98)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:938)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:992)
12-17 10:56:53.950: E/AndroidRuntime(7251):     at 

将图像文件从“drawable-v24”文件夹复制到“drawable”文件夹。问题解决了。信用:https://github.com/chrisjenx/Calligraphy/issues/417

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的 Button 类膨胀错误 的相关文章

  • 如何将react-native与php一起使用并获取返回数据始终为空

    我的回报始终为空 我似乎无法让它发挥作用 我如何将react native与php一起使用并获取json 任何人都可以帮忙吗 PHP myArray array myArray lat POST lat myArray lng POST l
  • 如何使用线程在 C# 中依次运行 3 个方法?

    我有三种方法 即方法1 方法2和方法3 方法1用于从一个站点下载图像 方法2用于从第二个站点下载图像 方法3用于比较图像 Method1 获取根据产品 id 逐一添加到列表中的图像 url 列表 即多个产品 id 的集合上有一个循环 然后根
  • jQuery - 将日期选择器的容器设置为特定的 div

    我在 div 上使用 jQuery UI 日期选择器 div通过移动鼠标隐藏和显示 因为日期选择器存在于末尾标签 不在我的 div 内 当我将鼠标移动到日期选择器时 div 消失 我像这样加载了日期选择器 JavaScript dt1 da
  • 我是否需要同时处置 CRM OrganizationServiceProxy 和 OrganizationServiceContext?

    OrganizationServiceProxy 和 OrganizationServiceContext 都支持 dispose 方法 我需要将它们都包装在 using 语句中吗 using var proxy GetOrganizati
  • a.equals(a) 什么时候返回 false?

    我想知道在哪些情况下java中的变量不能相等 使用equals 方法 自身 我这里说的不是对象而是变量本身 只要代码编译并在调用 equals 时返回 false 到目前为止 我发现的唯一情况是 public class A public
  • Java/Android 字符串到颜色的转换

    我正在制作一个应用程序 我希望能够通过用户输入 edittext 和十六进制值设置各种颜色 例如 eeeeee等等 问题是我似乎不知道如何转换它们 如果我在代码中做这样的事情 它工作得很好 标题栏 setBackgroundColor 0x
  • Haskell 中的相互递归求值器

    Update 我已经添加一个答案 https stackoverflow com questions 3524485 mutually recursive evaluator in haskell 4504200 4504200这描述了我的
  • SDK管理器不显示示例包选项

    我关注的是安卓安装示例的开发人员链接 http developer android com tools samples index html包裹 但是 当我展开Android平台的包列表时 没有 SDK示例 选项 复选框 可用 为什么 我已
  • MKAnnotationView 的不同字体

    在iPhone SDK地图上的标注气泡上 可以更改标题和副标题属性的字体吗 我对标注气泡中显示的默认字体不满意 并且希望使用不同的字体来匹配我的应用程序的其余部分 然而 我没有看到太多提及这一点 这让我担心这可能是不可能的 我见过构建自定义
  • 在应用程序脚本中将 .XLS 转换为 Google 表格的最有效方法是什么?

    我每周都会自动将 XLS 文件下载到 Google 云端硬盘 我想每周自动将最新下载的 XLS 文件转换为 Google 表格格式 因此转到特定的 Google 驱动器文件夹 查找最新或未转换的 XLS 文件 转换为 Google 表格格式
  • 当用户尝试使用 flutter_inappwebview 在移动应用程序中上传文件时,如何请求用户权限?

    我正在尝试使用 flutter inappwebviewplugin 创建一个 flutter web 应用程序 在应用程序中 我添加了一个用于文件上传的 dropzone 插件 此功能在浏览器和 Android 应用程序上都运行良好 但在
  • 从 C# 应用程序调用 ASP.net Web 服务

    我有个问题 我如何调用 Web 服务并从 C 桌面应用程序获取结果 我正在制作一个桌面应用程序 我希望它能够连接到我的在线 ASP net Web 服务 这怎么可能 在 解决方案资源管理器 中 右键单击项目节点并选择 添加 Service参
  • 如何使用 androidX 不破坏片段

    现在 我尝试 androidX 导航和底部导航栏 当我像下面一样使用它时 supportFragmentManager getSupportFragmentManager navHostFragment NavHostFragment su
  • 从 HashMap 中查找对象键

    我有一个 HashMap 其键作为我自己的对象 键作为 String 的 ArrayList 有没有一种方法可以从映射中获取与另一个对象相同的关键对象 而无需迭代映射 请注意 我的对象已经实现了 equals 和 hashcode 并且它只
  • 2 位小数格式的货币输入

    我需要将输入货币格式化为 2 位小数格式 例如 当用户输入 2 时 它看起来为 2 00 美元 然后当用户输入 2 时 它会转换为 22 00 美元 等等 我采用类似的方法 当用户输入 2 时 它会转换为 0 02 下一个 2 将是这样的
  • Spring Boot 应用程序崩溃

    请告诉我哪里有问题 我尝试启动我的第一个在 Spring Boot 上开发的应用程序 我已经在 SpringMVC 上有了简单的 Web 项目 现在我喜欢在 BOOT 上构建它 这是错误输出 org springframework bean
  • 将流程添加到 create-react-app 项目的编译步骤

    我正在使用 create react app 开发一个项目 并希望将 Flow 添加到我的流程中 这官方文档 https github com facebookincubator create react app blob master p
  • 使用 linq 字典中的最小值

    我有一本类型词典 Dictionary
  • System.IO.IOException:进程无法访问文件“.txt”,因为它正在被另一个进程使用

    我正在使用下一个代码来记录 Web 应用程序的错误 using StreamWriter myStream new StreamWriter sLogFilePath true myStream WriteLine string Forma
  • 布尔实现的atomicCAS

    我想弄清楚是否存在错误答案 https stackoverflow com a 57444538 11248508 现已删除 关于Cuda like的实现atomicCAS for bool是 答案中的代码 重新格式化 static inl

随机推荐

  • PyQt OpenGL:绘制简单场景

    最近我使用 PyOpenGL 绘制了简单的场景 例如三角形和多边形 代码非常简单 使用不同的 GL TRIANGLES 和 GL POLYGON 不会引起任何问题 之后我决定将 GUI 添加到我的应用程序并下载 pyqt4 所以现在我从那里
  • 如何使用 Exchange Web Services 2010 托管 API 获取文件夹大小?

    我正在尝试使用 EWS 2010 托管 API 来获取用户邮箱的总大小 我还没有找到一个网络服务方法来获取这些数据 所以我想我会尝试计算它 我在另一个网站上发现了一个看似适用的问题使用 EWS 2007 查找邮箱大小 但要么我不明白它要求我
  • 通过 PHP exec() 进行 Rsync,使用 SSH 无密码 ssh 登录

    如果我通过 php exec 运行命令 它不起作用 但如果我使用 bash 它运行得非常完美 知道问题可能是什么吗 我在想也许它正在作为 apache 执行 rsync 并且不允许 ssh 登录 exec rsync au var www
  • 如何在不使用FETCHALL的情况下在MYSQL PDO中获取2次

    我有这个示例查询 STH DBH gt query SELECT id FROM table 我想获取第一行 然后循环并显示所有行 所以我使用以下命令来获取第一行 STH gt setFetchMode PDO FETCH ASSOC fi
  • 在 C# 中减去时间的最简单方法是什么?

    我正在尝试整合一个工具来帮助我制定工作时间表 解决以下问题的最简单方法是什么 上午 8 00 5 小时 下午 1 00 下午 5 00 2 小时 下午 3 00 下午 5 30 45 4 45 等等 这些都可以通过DateTime Add
  • 在网站上嵌入 3D 模型

    有没有办法在网站上嵌入 Sketchup 模型 最好是免费的 如果它是一个商业解决方案 我想确认它确实物有所值 我知道 3D 仓库的东西 你可以在其中旋转它 javascript 和一些图像 但我无法上传3D 仓库中的任何内容 因为它总是
  • jQuery 按数据属性中的日期排序

    如果我有这个标记 p item 1 p p item 1 p p item 1 p 我如何使用 jQuery 按数据日期属性对这些 P 进行排序 Thanks Demo 非常简单的数组排序 p sort function a b retur
  • 扩展 Control 以提供一致安全的 Invoke/BeginInvoke 功能是否合适?

    在我维护一个严重违反 winforms 中跨线程更新规则的旧应用程序的过程中 我创建了以下扩展方法 作为在发现非法调用时快速修复它们的方法
  • 捕获 asyncio.ensure_future 中的错误

    我有这个代码 try asyncio ensure future data streamer sendByLatest except ValueError as e logging debug repr e data streamer se
  • 在Python中解析多部分请求字符串

    我有一个像这样的字符串 5b34210d81fb44c5a0fdc1a1e5ce42c3 r nContent Disposition form data name author r n r nJohn Smith r n 5b34210d
  • 更改四开 PDF 输出中的标题/标题字体

    当RMarkdown rmd文档被编织为 PDF 文本正文以及标题 副标题和标题均以相同的 LaTeX 标准字体呈现 渲染四开时 qmd文档为 PDF 时 文本正文的字体保持不变 但标题 副标题和标题以不同的字体呈现 没有衬线 为了实现较旧
  • 与 Integer.MAX_VALUE 相比并使用 System.out.println 时 for 循环提前终止

    当我运行这个类时 for 循环似乎提前终止 class Test public static void main String args int result 0 int end Integer MAX VALUE int i for i
  • 如何从div中删除最后一个元素?

    我有描述列表 删除其中一个后 我想从 div 中删除最后一个元素 而不是刷新站点 事实上我不懂javascript 所以我想问一下我的destroy js erb应该是什么样子 我可以使用刷新整个班级的 描述 descriptions lo
  • Actionscript:图像到base64字符串可能吗?

    是否可以将选定的图像转换为 Base64 编码的字符串 对于图像上传器来说 这将是一个很好且简单的解决方案 谢谢 如果您想对加载图像的 byteArray 进行编码 您可以使用 mx utils 中的 Base64Encoder 类Base
  • 如何在 Selenium + Python 中查找损坏的链接

    我试图在 Selenium 和 Python 中找到损坏的链接 但在代码中出现错误 import requests from selenium import webdriver chrome driver path D drivers ch
  • 将 iPad 内容输出到外部显示器

    我听说可以将 iPad 应用程序的内容输出到外部显示器 但应用程序必须为此做好准备 并且存在严重的限制 有什么指点吗 另外 iPhone 也能做到这一点吗 是一样的吗 几乎没有表明 您需要创建一个新的 UIWindow 并将其附加到 UIS
  • 下划线方法前缀

    我一直在检查 CodeIgniter 和 CakePHP 的代码 我注意到它们类中的一些方法带有下划线前缀 或双下划线 这样做的目的是什么 如果不是以下任一情况PHP 魔法方法 是为了表示能见度缺乏适当的可见性关键字 蛋糕编码约定 由于我们
  • 更改fiddler代理服务器的用户名和密码[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在使用 Fiddler 设置代理服务器 但在规则菜单下启用 需要代理授权 时 用户名 密码始终为 1 如何更改用户名 密码 我尝试更改 oSession X AutoAuth 用
  • 如何读取3gp / AMR-NB音频格式的原始值?

    在我的 Android 应用程序中 我正在录制用户的声音 并将其保存为 3gp 编码的音频文件 我想做的就是打开它 即代表音频样本的序列 x n 以便执行一些音频信号分析 有谁知道我该怎么做 您可以使用安卓媒体编解码器解码 3gp 或其他媒
  • Android 中的 Button 类膨胀错误

    我有一个最小 sdk 16 到 23 的应用程序 我想尽可能多地使用 Material design 它还必须是全屏应用程序 包含 AppCompat 支持库 现在我有一些按钮的登录活动