Как сделать Android самостоятельным компонентом и использовать его из библиотеки jar? - PullRequest
10 голосов
/ 05 мая 2011

Я пытаюсь создать компонент Android, который можно легко добавить в проекты Android в виде библиотеки JAR.

Для этого мне пришлось создать новые атрибуты xml в "res / values ​​/ attr.xml", которые я добавляю в свой графический элемент xml, используя путь:

 xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"

Затем я импортирую этот проект как библиотеку jar в другой проект. Чтобы создать мои графические компоненты в новом проекте, я должен изменить путь ниже:

 xmlns:app="http://schemas.android.com/apk/res/com.mylibrary"

Но путь неверный: пользовательские атрибуты не найдены.

Мне удалось интегрировать файл R в библиотечный jar, и я мог получить к нему доступ из своего xml, чтобы объявить пользовательский компонент, подобный этому:

<PreferenceScreen
  xmlns:android = "http://schemas.android.com/apk/res/android"
 xmlns:app = "http://schemas.android.com/apk/res/com.myLibraryPackage">

<com.myLibraryPackage.mySelfComponent
     android:title="Name"
     android:key="name"
     app:hintText="Input your name"
     android:dialogTitle="Your name "
     app:validator="com.myLibraryPackage.myValidatorClass" />

Что странно, если я помещаю свой файл attr.xml в ресурсы моего проекта, он работает, а значит, он находит com.myLibraryPackage.mySelfComponent. В таком случае, почему он не может найти также com.myLibraryPackage?

(я также пытался заменить

xmlns:app="http://schemas.android.com/apk/res/com.myLibraryPackage"

от

xmlns:app="http://schemas.android.com/apk/res/com.myApplicationPackage"

но все равно не работает)

Я бы предпочел использовать банку для облегчения ее интеграции в проект!

Кто-нибудь сталкивался с такой проблемой, кто мог бы мне помочь?

Спасибо.

1 Ответ

3 голосов
/ 05 мая 2011

Я пытаюсь создать компонент Android, который можно легко добавить в проекты Android в виде библиотеки JAR.

Если вы хотите повторно использовать код и ресурсы, он не будетМожно сделать это с помощью файла JAR.Вам нужно будет преобразовать вашу библиотеку в проект библиотеки .

Затем я импортирую этот проект как библиотеку jar в другой проект.Чтобы создать мои графические компоненты в новом проекте, я должен изменить путь ниже:

Если вы используете проект библиотеки, вы все равно будете ссылаться на пользовательский атрибут, как если бы он содержался вприложение (поскольку при компиляции приложения Android объединит все ресурсы):

xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"
...