2011-01-19 86 views
2

我有一个简单的布局如下:MonoDroid的 - 从colors.xml设置背景颜色抛出InvalidOperationException异常

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout 
    android:id="@+id/widget30" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/translucent_red" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

我colors.xml文件如下:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="opaque_red">#f00</color> 
    <color name="translucent_red">#80ff0000</color> 
</resources> 

当我在VS2010中编译我得到一个错误“System.InvalidOperationException:命令失败....”我已经尝试将colors.xml放置在res/values和res/color中,但是我仍然使用 获取错误。如果我直接参考颜色:

android:background="#80ff0000" 

一切工作正常。

有谁知道,如果colors.xml是由MonoDroid支持,如果是的话,为什么我得到这个错误?

感谢您的帮助!

回答

1

想象出来,colors.xml的Build Action被设置为Content而不是AndroidResource!

+0

你是如何修复它的? – Derzu 2012-05-31 22:30:48

2

很好,你发现了这一点。另一个需要考虑的问题是您总是使用小写字母来定义颜色标识。我使用大写字母框,虽然我的c#代码发现了区分大小写的搜索资源,但android在从drawable或layout xml文件(使用@ color/the_id_here)引用时期望使用小写的id。