Может ли любой проект библиотеки Android быть преобразован во внешний JAR?
Не сейчас.
Если нет, каковы ограничения или ограничения?
Если ваша библиотека представляет собой чисто Java-код без ресурсов, вы можете создать JAR-файл из файлов .class
, как если бы вы использовали обычную Java.
Если ваша библиотека использует ресурсы, вы все равно можете создать JAR, как указано выше. Однако вам нужно будет найти значения R
(например, R.layout.main
) с помощью отражения или getIdentifier()
, и ваши ресурсы не будут упакованы в JAR, но должны будут распределяться отдельно.
В будущем инструменты сборки должны поддерживать создание распространяемых JAR-файлов из библиотечных проектов, дополненных ресурсами. Текущие инструменты сборки создают JAR-файлы, но они не предназначены для распространения, а являются скорее внутренними артефактами сборки на данный момент.