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">

My colors.xml file is as follows:

<?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, и если да, то почему я получаю эту ошибку?

Спасибо за помощь!


person Click Ahead    schedule 19.01.2011    source источник


Ответы (2)


Хорошо, что ты это узнал. Еще одна проблема, которую следует учитывать, заключается в том, что вы всегда определяете идентификатор цвета строчными буквами. Я использовал прописной регистр, и хотя мой код С# находит ресурсы с учетом регистра, Android ожидает идентификатор в нижнем регистре при обращении к файлам drawable или layout xml (используя @color/the_id_here).

person EeKay    schedule 28.03.2012

Выяснилось, что действие сборки для colors.xml было установлено на Content вместо AndroidResource !

person Click Ahead    schedule 19.01.2011