Flutter打包APK报错:expected color reference but got res/launch_background
解决Flutter构建APK时的
expected color reference but got (raw string)错误 1. 检查启动页背景配置文件
错误指向res/launch_background,优先检查android/app/src/main/res/drawable/launch_background.xml(若启用夜间模式,同时检查drawable-night目录下的同名文件)。
常见错误及修复:
- 错误写法(直接使用无格式的颜色字符串或错误引用):
<item android:drawable="FFFFFF" /> <item android:drawable="@string/white" /> - 正确写法二选一:
- 直接使用带
#的完整颜色值:<item android:drawable="#FFFFFF" /> - 引用
values/colors.xml中的颜色资源(无colors.xml则新建):
先在android/app/src/main/res/values/colors.xml添加定义:
再在<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FFFFFF</color> </resources>launch_background.xml中引用:<item android:drawable="@color/white" />
- 直接使用带
2. 排查styles.xml与styles-night.xml
打开这两个文件,检查所有涉及背景颜色的配置:
- 错误示例:
<item name="android:background">FFFFFF</item> - 修复为:
<item name="android:background">#FFFFFF</item> <!-- 或引用颜色资源 --> <item name="android:background">@color/white</item>
3. 清理缓存后重新构建
修改完成后,执行以下命令确保缓存完全清除:
flutter clean
删除Android项目的build目录(终端命令:rm -rf android/build,Windows系统用rmdir /s /q android\build),最后重新构建APK:
flutter build apk
4. 处理第二个错误
查看终端完整错误输出,定位到具体文件和行号,检查资源引用是否存在拼写错误、格式错误(比如漏写@符号、颜色值格式不对),或者AndroidManifest.xml中的配置问题。
内容的提问来源于stack exchange,提问作者Anushka Sambare
相关产品推荐
相关产品推荐

