我在一个名为drawable-sw600dp的文件夹中有一个1900 * 1200的图像,该文件夹喜欢在nexus 7上使用。当我尝试运行应用程序时,主要活动屏幕是白色的,我收到以下错误:
java.lang.NumberFormatException: Color value '@drawable-sw600dp/background5' must start with #
at com.android.layoutlib.bridge.impl.ResourceHelper.getColor(ResourceHelper.java:71)
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:248)
at android.content.res.BridgeTypedArray.getDrawable(BridgeTypedArray.java:782)
可能是图片太大而无法使用吗?或者可能导致此错误发生的原因是什么?
这是在我的activity_main.xml中设置了背景:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background5"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:id="@+id/MainLayout"
tools:context=".MainActivity">
在我的其他文件夹drawable-hdpi中,-mdpi没有问题。然而,我使.jpg图像的分辨率更高,现在它产生了这个错误,这就是为什么我怀疑高分辨率导致了这个问题。
答案 0 :(得分:54)
删除文件名中的“ - ”。
注意:' - '不是有效的基于文件的资源名称字符:基于文件的资源名称必须仅包含小写的a-z,0-9或下划线
答案 1 :(得分:2)
如android doc所述,jpg不受支持。请改用png:
用作背景的drawable。这可以是对完全可绘制资源的引用(例如PNG图像,9补丁,XML状态列表描述等),也可以是纯色,例如“#ff000000”(黑色)。
答案 2 :(得分:0)
有些人提到重启Eclipse已经有效,但这对我没用。
相反,我发现我必须简单地重命名图像文件,以便它不以数字开头。 Android Developer Icon Pack中的所有图标都以数字开头,我刚刚复制了一个。看来,如果文件以数字开头,则假定它是十六进制颜色值的开头,因此会查找#符号。
使用:Eclipse Juno 3.7.2,Android SDK 21.1