Собственный скрипт сборки, чтобы избежать конфликтов имен библиотек? - PullRequest
0 голосов
/ 07 августа 2011

При использовании библиотек Android, если более одного проекта (основного или библиотеки) определяют один и тот же ресурс, используется копия проекта с более высоким приоритетом и заменяет предыдущую.

Эта проблема возникает при написании многократно используемой библиотеки, поскольку она вынуждает вас префиксировать каждое имя ресурса, чтобы избежать конфликтов. См. Android Parcel Project для получения дополнительной информации по теме.

Теперь я хотел бы сделать скрипт, который перед компиляцией префиксировал бы имя каждого ресурса из всех библиотек с их именем пакета. Для этого я собираюсь использовать сгенерированный скрипт сборки муравья и добавить в него пользовательский шаг.

Вы знаете, возможно ли это? Вы видите лучшее решение, чтобы решить эту проблему?

1 Ответ

1 голос
/ 07 августа 2011

Вы знаете, возможно ли это?

Если у вас есть исходный код для библиотеки, я полагаю, вы могли бы сделать это.Я подозреваю, что любое место, к которому вы обращаетесь к идентификаторам ресурсов динамически (отражение, getIdentifier() и т. Д.), Должно быть скорректировано вручную.И вы, возможно, не сможете получить помощь от автора библиотеки, если вы изменили их код.

Я бы также попытался убедить автора библиотеки добавить префиксы ресурсов в будущих выпусках их библиотеки.

...