【问题标题】:Android app : Resource not found when building with an older APIAndroid 应用程序:使用旧 API 构建时找不到资源
【发布时间】:2020-10-13 04:47:56
【问题描述】:

我在构建面向 API 23 的应用程序时遇到以下错误

AAPT: error: resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found
error: resource android:style/TextAppearance.Material.Widget.Button.Colored not found.

还有一个错误列表,例如:

/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:3217: error: resource android:attr/textFontWeight not found.

该应用基于 API 级别 29 构建,但我需要它在 API 23 上精确运行,因此更改 API 版本不是一种选择。 有什么办法可以使用旧布局吗?该应用程序根本不需要漂亮,它只需要工作即可。

编辑: 我添加了以下行: implementation 'com.google.android.material:material:1.2.1' build.grade (:app) 希望图书馆能提供资源,但它没有工作

但我可能添加错了

【问题讨论】:

    标签: android android-studio android-layout android-6.0-marshmallow


    【解决方案1】:

    android:style/TextAppearance.Material.Widget.Button.Borderless.Colored 是在 API 24 中添加的,因此在为具有 23 的设备构建时,您会收到此错误。解决方案是实现MaterialComponentslibrary,这将允许您在旧设备上使用更新的样式/小部件。查找导致您的问题的View 并将其替换为上述库或设置兼容样式

    【讨论】:

    • 谢谢,我试过了,它改变了一些东西。我编辑了帖子
    • 您已正确导入它,但它不会为您带来完全相同的主题名称 - 这将是新设备上的命名冲突。所有内置属性都以 android: 前缀开头,来自库(或本地自定义)的那些将没有此前缀。您可以尝试删除 android: 保持休息(从 style/TextAppearance... 开始),但我怀疑它是否有效,您必须阅读一些文档并寻找更改命名的等效项,例如.Material. 部分可能会更改为 .MaterialCompat.(也可以在不使用 android: 前缀的情况下使用它)
    • 这是非常有用的信息谢谢,我会尝试检查非 android: 资源
    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 2015-11-03
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多