Настройка проекта для создания сторонних библиотек для Android - PullRequest
3 голосов
/ 01 мая 2010

Я создаю библиотеку для Android, которую другие могут включить в собственный проект. До сих пор я работал над ним как с обычным Java-проектом с настройкой JDK 1.6 в качестве системной библиотеки. Это прекрасно работает в Eclipse, когда я добавляю android.jar.

Проблема возникает, когда я пытаюсь выполнить сценарий сборки. Я использую Gradle и выполняю обычный цикл компиляции и тестирования. Я думал, что это не имеет значения, если я скомпилирую его с обычным JDK, так как это не отдельное приложение. Преимущества создания нормального Java-проекта в том, что Gradle поддерживает его гораздо лучше. Мой проект также не содержит вообще никакого пользовательского интерфейса. Однако проблема в том, что, конечно, android.jar и JDK содержат много одинаковых классов, и я думаю, что именно это портит мой скрипт сборки. Все вылетает при запуске тестов (тесты находятся в одном проекте под src / test / java).

Мой вопрос: как мне создать этот проект, который должен быть включен в проекты Android как сторонняя библиотека? Должен ли я создать его как проект Android в Eclipse, хотя я только создаю библиотеку, которая не использует какие-либо функции пользовательского интерфейса? Кроме того, тесты должны быть в отдельном проекте?

Спасибо за все ответы!

Ответы [ 2 ]

2 голосов
/ 12 мая 2010

Вы смотрели на плагин Android для Gradle? Он включает в себя инструмент ProGuard для упаковки только необходимых классов в ваш файл Android APK, поэтому он может соответствовать вашему сценарию. Посмотрите здесь: http://wiki.github.com/jvoegele/gradle-android-plugin/

1 голос
/ 01 мая 2010

Я начну с простого вопроса, касающегося тестового проекта. Мой опыт показывает, что лучше иметь отдельный тестовый проект. Я сделал это с успехом во многих проектах Java ME, где проблемы похожи. Тестовый проект должен импортировать только исходный код, а не библиотеки. Тогда не должно быть проблем с дублирующимися классами.

Другой вопрос немного сложнее. Моя интуиция подсказывает мне, что основным проектом должен быть проект Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...