Как создать собственные компоненты Android и использовать их из библиотеки jar?

Я пытаюсь создать компонент 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

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

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

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

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

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