Android Переопределение ресурсов - PullRequest
1 голос
/ 08 февраля 2011


Я пытаюсь разделить приложение на проект приложения и проект библиотеки (помимо перемещения его из Netbeans в Eclipse).Приложение будет содержать ресурсы, которые используются библиотекой - для этого я прочитал в Stackoverflow, что мы можем связать ресурсы в проекте библиотеки и затем переопределить их в проекте приложения.

Но когда я сделал это, Я получаю сообщение об ошибке:
... \ res \ values ​​\ attrs.xml: 5: error: атрибут "pageBackground" уже определен

Я что-то здесь не так делаю?Любое из моих предположений является ошибочным?

Спасибо, Раджат

1 Ответ

2 голосов
/ 15 февраля 2011

Я думаю, что у меня была похожая проблема, когда я пытался создать своего рода «файл конфигурации», который был помещен в ресурсы приложения и предназначался для изменения поведения используемой библиотеки.Я обнаружил, что работает, используя getIdentifier метод из Resources вместо ссылки непосредственно на R class:

final int resId = getResources().getIdentifier("my_resource", "raw", getPackageName());

Затем вы можете использовать идентификатор как обычный идентификатор ресурса, например:

if (resId > 0) {
    final InputStream is = getResources().openRawResource(resId);
    // ...
}

Идея состояла в том, чтобы справиться с обеими ситуациями: когда файл присутствовал в ресурсах приложения или когда его не было.Но я думаю, что это также должно работать в вашем случае «переопределения» ресурсов из библиотеки в приложении, благодаря getPackageName предоставлению соответствующего имени пакета для разрешения идентификаторов ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...