Ссылка в R.java не окончательная

При генерации ссылки для стилевого атрибута, похоже, что-то идет не так при генерации файла R.java.

Можно ожидать, что объявление поля будет final но это не так. Как так?

RES / значения / attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="MyTextView">
        <attr name="typeface" format="string"/>
    </declare-styleable>
</resources>

ген / com.example / R.java

    /**
      <p>This symbol is the offset where the {@link com.example.R.attr#typeface}
      attribute's value can be found in the {@link #MyTextView} array.
      <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
      <p>This may also be a reference to a resource (in the form "<code>@[<i>package</i>: <i>type</i>:<i>name</i></code>") or theme attribute (in the form "<code>?[<i>package</i>: [<i>type</i>:]<i>name</i></code>") containing a value of this type. 
       @attr name com.example:typeface
    */
    public static int MyTextView_typeface = 0;

1 ответ

Решение

Ссылки внутри R.java не являются окончательными, так как пару лет назад.

Причина этого в том, что сгенерированные идентификаторы могут конфликтовать, если у вас есть несколько библиотечных проектов, от которых зависит ваш основной проект.

Вот более подробное объяснение этого: http://tools.android.com/tips/non-constant-fields

Другие вопросы по тегам