Собственный скрипт сборки, чтобы избежать конфликтов имен библиотек?
При использовании библиотек Android, если несколько проектов (основной или библиотеки) определяют один и тот же ресурс, используется копия проекта с более высоким приоритетом, которая заменяет предыдущую.
Это проблема при написании многократно используемой библиотеки, потому что она заставляет вас ставить префикс перед каждым именем ресурса, чтобы избежать конфликтов. См. Android Parcel Project для получения дополнительной информации по этой теме.
Теперь, что я хотел бы сделать, это скрипт, который перед компиляцией префикс имени каждого ресурса из всех библиотек с их именем пакета. Для этого я намерен использовать сгенерированный скрипт сборки муравья и добавить к нему пользовательский шаг.
Вы знаете, возможно ли это? Вы видите лучшее решение, чтобы решить эту проблему?
1 ответ
Вы знаете, возможно ли это?
Если у вас есть исходный код для библиотеки, я полагаю, вы могли бы сделать это. Любое место, куда вы ссылаетесь на идентификаторы ресурсов динамически (отражение, getIdentifier()
и т. д.) пришлось бы настраивать вручную, я подозреваю. И вы не сможете получить помощь от автора библиотеки, если вы изменили их код.
Я также работал над тем, чтобы убедить автора библиотеки добавить префиксы ресурсов в будущих выпусках своей библиотеки.