Я не уверен, сталкиваюсь ли я с ошибкой в инструментах Android здесь, или это из-за замысла. Проблема заключается в следующем: у меня есть проект библиотеки Android, который экспортирует виджет. Как часть этого виджета, настраиваемые атрибуты экспортируются в R.styleable:
Проект библиотеки (package = com.example.mylib):
<declare-styleable name="com.example.MyWidget">
<attr name="someAttr" format="integer" />
</declare-styleable>
Проект приложения (package = com.example.myapp):
<LinearLayout xmnls:mylib="http://schemas.android.com/apk/res/com.example.mylib">
<com.example.MyWidget android:id="..." mylib:someAttr="1" />
</LinearLayout>
Проблема в том, что атрибут someAttr
кажется видимым только для Android / ADT, когда библиотека и приложение используют один и тот же идентификатор пакета! В этом случае это не так, и ADT завершается с ошибкой:
Не найден идентификатор ресурса для атрибута 'someAttr' в пакете 'com.example.mylib'
Как я уже сказал, я могу это исправить, изменив имя пакета приложения на «com.example.mylib», но, конечно, это не то, что я хочу! Я что-то упустил?