微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AppCompatSpinner 仅在少数设备上抛出 InflateException

如何解决AppCompatSpinner 仅在少数设备上抛出 InflateException

两天我在单击自定义 AppCompatSpinner 时遇到了 IllegalArgument 异常(鉴于下面的崩溃日志)。 此问题并非在所有设备中都会发生,只有少数设备(三星、一加)受到影响。 下面列出了所有 api 版本的应用主题

parent="Theme.AppCompat.NoActionBar"

v23 主题

parent="Theme.AppCompat.Light.NoActionBar"

v21 主题

parent="Theme.MaterialComponents.DayNight.NoActionBar"

我的崩溃日志:

E/AndroidRuntime: FATAL EXCEPTION: main
        android.view.InflateException: Binary XML file line #95: Binary XML file line #37: Error inflating class Button
        Caused by: android.view.InflateException: Binary XML file line #37: Error inflating class Button
        Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).

请提供一些见解以解决此问题。在 stackoverflow 和其他站点中找到了一些解决方案,但没有任何帮助我解决问题

解决方法

如果你想使用 Material UI 元素,那么

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 应更改为 <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

正如错误本身所说,您的应用主题必须是 MaterialTheme 的子项或相同的任何子项。

How to build a material theme

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。