Как распределить повторно используемый код андроида в пакете?

Я разработал некоторый допускающий повторное использование компонент андроида, который является в основном классом. Этот класс имеет некоторые зависимости от ресурса, например, некоторый png drawables, некоторые xml разметки и т.д. Таким образом, этот класс сослался на автоматически сгенерированный файл R. Я хотел бы распределить этот код в единственном пакете как файл банки другим разработчикам для использования в их приложениях.

Я считал, что единственное возможное решение состоит в том, чтобы распределить код вместе со всеми моими ресурсами, которые другие должны скопировать в свою "res" папку (источник).

Таким образом, я создал файл банки, имеющий файл класса (скажите, что MyClass, который находится в пакете com.xyz.android.app) и ресурсы и попробованный для использования этого в моем новом приложении.

Таким образом, я добавил файл банки к своему новому использованию пути сборки приложений add external jars опция в затмении и скопированный все ресурсы в res папку моего нового приложения. (Класс действия говорит, что MainActivity моего нового приложения находится в com.abc.myapplication пакет, только для случая, если это может полезный),

Но когда я запускаю это новое приложение существует java.lang.ClassCastException в классе MyClass. Я пытался отладить приложение, и затем я нашел, что в классе MyClass, существует "R, не может быть разрешен" проблема.

Затем я изменил пакет MainActivity на com.xyz.android.app (который не является путем, другие разработчики будут рады сделать), Но снова та же проблема.

Но Когда я просто копирую источник, Java регистрирует таким образом, что и MainActivity.java и MyClass.java находятся в com.xyz.android.app пакете затем прекрасное выполнение приложения.

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

Править

В android.jar существуют также некоторые ресурсы. Как на них ссылаются в проекте? Как они используются в классах андроида? Существует также андроид. R файл?

Разве не возможно сделать то же самое т.е. сделать файл банки как android.jar для моего повторно используемого кода?

6
задан Community 23 May 2017 в 10:33
поделиться

3 ответа

Как заметил Ник Стронг, в проекте нет ничего особенного, чтобы управлять этим, и текущие признаки указывают на то, что предстоящие изменения в инструментах SDK могут только помочь немного.

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

3
ответ дан 17 December 2019 в 00:05
поделиться

Я играл с классом ParcelHelper Марка Мерфи по адресу http://github.com/commonsguy/cwac-parcel . Вкратце, это набор методов, которые позволяют вам обращаться к компонентам R по имени без необходимости импортировать R в ваш код.

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

1
ответ дан 17 December 2019 в 00:05
поделиться

В настоящий момент это сделать не так-то просто. Проблема в том, что проект, использующий ваш jar, не знает, как искать там чертежи и т. Д. Хорошая новость в том, что это скоро станет возможным (надеюсь, с SDK 2.2, который, по слухам, будет выпущен на IO на следующей неделе). См. Это сообщение в блоге http://mobilebytes.wordpress.com/2010/04/27/android-tools-version6-coming/

3
ответ дан 17 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: