升级到 androidx 和 SDK 28 后,我在构建项目时收到以下错误:
.../app/src/main/res/values/styles.xml:90:5-93:13:AAPT:错误: 预期的参考,但得到(原始字符串)#000000。
values/styles.xml的相关行:
<style name="menu_labels_style">
<item name="android:background">@drawable/fab_label_background</item>
<item name="android:textColor">@color/white</item>
</style>
fab_label_background 资源(以防万一)是:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/black_semi_transparent"/>
<padding
android:left="16dp"
android:top="4dp"
android:right="16dp"
android:bottom="4dp"/>
<corners
android:radius="2dp"/>
</shape>
想象一下,当我在谷歌上搜索一个问题时,我又回到了这个我完全忘记的问题,但评论中有我自己的名字,这让我感到惊讶。
不过这一次,我可能真的有了答案:
在您的 build.gradle 文件中,查找:
implementation 'com.google.android.material:material:1.0.0-rc01'
并更改为较新版本。
implementation 'com.google.android.material:material:1.4.0'
但是不要使用 1.5.0-alpha03(撰写本文时最新的版本),它也有问题。
#000000 在你的 style.xml 中找到这个
<item name="background">#000000</item>
然后在 color.xml 中为此颜色创建一个条目,然后使用其字符串引用。
<color name="black">#000000</color>
<item name="background">@color/black</item>
它不会再出现这个错误了。
我刚刚使用了Android Studio的“迁移到AppCompat”功能。
换了线路
<item name="android:background">...</item>
在我的 styles.xml 文件中到
<item name="background">...</item>
,
我开始收到错误。当我恢复更改时,错误消失了。