【问题标题】:How to fix android error 'Color value must start with #'?如何修复android错误“颜色值必须以#开头”?
【发布时间】:2016-01-12 19:15:14
【问题描述】:

我试图在我的布局中使用来自this page 的图标,如下所示

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_backspace_black_24dp"
/>

但由于错误无法渲染

Color value '@drawable/ic_backspace_black_24dp' must start with #

我在 SO herehere 中发现了两个相关问题,这无助于解决问题。

文件名中没有破折号 ('-'),文件格式是 'png',并且我的项目中没有 res/color 目录。

我在colors.xml 中定义的所有颜色都以# 开头。

那么如何解决这个错误呢?

【问题讨论】:

  • 你的drawable文件的内容是什么?

标签: android


【解决方案1】:

只需删除数字并仅保留小写字母或下划线即可重命名文件名。

【讨论】:

  • 我必须删除除字母以外的所有内容,但它确实有效。魔术。
【解决方案2】:

问题已解决:我忘了记住互联网上的 android 资源确实已经过时了,几乎没有一个文档按原样工作!

android developer guide 中建议的文件夹 res/drawable 已弃用!该文件夹现在命名为mipmap!所以简单的解决方案是使用以下布局来解决问题:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/ic_backspace_black_24dp"
/>

永远不要相信 android 开发者文档...!

【讨论】:

  • 您仍然可以将drawable/ 用于形状、图层等
  • 我遇到了这个问题,但它显然与图像文件名有关。在我将其重命名为“ic_file_name”后,错误消失了。
  • 解决了我的问题!将 drawable 更改为 mipmap!
  • res/drawable 当然不会被弃用。 Mipmap 有一个特殊的用途,不一定适用于任何和所有可绘制对象。
【解决方案3】:

尝试删除“_”下划线并缩短名称。不知道为什么,但这对我有用。

【讨论】:

    【解决方案4】:

    检查文件drawable/ic_backspace_black_24dp。

    如果您下载了 SVG 版本,您将能够以文本文件的形式打开。检查 android:fillColor 是否有 #.

    无论如何,如果您使用的是 Android Studio,则可以使用 Vector Asset Studio 轻松下载这些图标:

    • 在drawable中单击鼠标右键
    • 矢量素材
    • 选择你想要的图标

    你有更多关于这个功能的信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多