Android Library Project как скомпилированная библиотека JAR - PullRequest
3 голосов
/ 21 июня 2011

Я создаю API с пользовательским представлением. Чтобы включить представление в пользовательские атрибуты в XML, я хочу использовать «Проект библиотеки Android» для API. Этим я могу объявить определение моих пользовательских атрибутов в файле attrs.xml.

Но у меня проблемы с использованием Библиотечного проекта при экспорте его в JAR-файл. Проект, ссылающийся на JAR, получает проблемы с файлами ресурсов Android, включенными в JAR. Кто-нибудь знает, как этого добиться? Надеюсь, я был ясен в своем вопросе. В этом случае я не могу позволить проекту быть проектом с открытым исходным кодом.

[Update] От: http://developer.android.com/guide/developing/projects/index.html#considerations

"Вы не можете экспортировать проект библиотеки в файл JAR Библиотека не может быть распространена как двоичный файл (такой как файл jar). Это связано с тем, что проект библиотеки компилируется основным проектом для использования правильных идентификаторов ресурса. "

Так что я думаю, что это ответ на мой вопрос. Я попробовал наполовину рабочее решение. Он предназначен для создания JAR из исходных файлов java и добавления только ресурсов Android xml, как attrs.xml, к каждому проекту, использующему JAR. Но это не очень хорошее решение для того, чего я хочу достичь. Мне нужен JAR-файл с исходными и XML-ресурсами, но я не нашел решения для этого.

Ответы [ 2 ]

1 голос
/ 26 июля 2012

обновление от code.google.com. Выпуск 9656. Проекты библиотек не поддерживают настраиваемые атрибуты XML для настраиваемого класса , ..., если у вас имеется r17 инструментов.текст этой ссылки:

Посмотрите на "Что нового в SDK R17":

Добавлена ​​поддержка пользовательских представлений с настраиваемыми атрибутами в библиотеках.Макеты, использующие пользовательские атрибуты, должны использовать URI http://schemas.android.com/apk/res-auto пространства имен вместо URI, который включает имя пакета приложения.Этот URI заменяется конкретным приложением во время сборки.

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

0 голосов
/ 03 февраля 2012

Для поддержки более быстрого времени сборки инструменты r16 создают свои собственные файлы jar внутри библиотечных проектов Android. Вы можете использовать эту функцию для решения этой проблемы. Если вы хотите выпустить свой проект библиотеки Android, но без исходного кода, вы можете сделать копию этого проекта библиотеки Android, которая содержит все, кроме дерева исходного кода. Затем включите файл jar из оригинальной библиотеки Android Android Porject (созданной инструментами r16). Это позволит вам иметь компонент, который вы можете распространять, не требующий исходного кода. Потребитель этого нового проекта библиотеки Android должен будет вручную добавить все необходимые метаданные в файл AndroidManifest.xml своего собственного проекта по мере необходимости (действия, поставщики, разрешения и т. Д.).

...