1) надежный способ узнать, был ли определенный класс / jar / что-либо упакован в мой apk, так как шаги, чтобы добраться до этой точки в моем приложении, длинные и сложные правильнотеперь
Сборка проекта из командной строки (т. е. mvn clean install), maven будет выводить подробные журналы во время каждой отдельной фазы / цели сборки, в цели dex вы можетеувидеть что-то вроде этого:
[INFO] --- android-maven-plugin: 3.1.1: dex (default-dex) @ myproject ---
[INFO] C: \Программные файлы \ Java \ jdk1.6.0_21 \ jre \ bin \ java [-Xmx1024M, -jar, C: \ Progr am Files \ Android \ android-sdk-r16 \ platform-tools \ lib \ dx.jar, --dex, --output = C: \ workspace \ myproject \ target \ classes.dex, C: \ workspace \ myproject \ target \ classes, C: \ maven \ repository \ cocos2d_android \ cocos2d_android \ 1.0.0-SNAPSHOT \ cocos2d_android-1.0.0-SNAPSHOT.apklib, C: \ maven \ repository \ com \ google \ code \ gson \ gson \ 1.7.1 \ gson-1.7.1.jar, ... ...]
Проект библиотеки Android на самом деле выглядит как cocos2d_android-1.0.0-SNAPSHOT.apklib с некоторыми другими обычными архивами jar-библиотеки.
2) Что-то в Manifest или pom.xml для основного приложенияили проект библиотеки, похоже, отсутствует - что-то, что нужно, чтобы подать сигнал Maven, чтобы он взял этот другой проект - что это?
Это ApkLib, который является просто почтовым индексомархив проекта библиотеки Android (src /, res /, AndroidManifest.xml и т. д.).Обычно мы создаем / внедряем наш собственный проект библиотеки Android с зависимым проектом Android в качестве многомодульного проекта maven, однако в этом нет необходимости, если вам нужна ссылка на проект библиотеки Android, написанный другими разработчиками.Благодаря разработчику android-maven-plugin уже поддерживает не-Maven проекты библиотек Android, ознакомьтесь с Совместимо с не-Maven проектами библиотек Android :
Сгенерированный .apklibфайл будет иметь макет стандартного проекта библиотеки Android / Eclipse.Это означает, что независимо от вашего макета Maven, макет в файле .apklib будет таким, что исходный код находится в «src /» вместо «src / main / java /», но все равно интерпретируется правильно при использовании в приложении Android / Mavenпроект.Это должно быть совместимо с проектами библиотек сторонних разработчиков, что важно для развития сообщества разработчиков Android.
Использование библиотек других разработчиков не Maven
Это также означает, что мы можем взять любой внешний zip-файл проекта библиотеки Android (от сторонних разработчиков) и выполнить на нем mvn install: install-file ... и просто начать использовать его в качестве зависимости.
Поделитесь своим .apklib с не-Maven разработчиками
Чтобы поделиться вашим .apklib-файлом с не-Maven разработчиком, им, вероятно, будет удобнее, если вы переименуете его в .zip.Затем они могут просто распаковать его в каталог и использовать оттуда.
Таким образом, обходной путь:
- Правильно упакуйте ваш проект библиотеки Android в zip-архив, затем переименуйтеэто что-то в .apklib.
- Установите файл Some.apklib в локальный репозиторий Maven с помощью mvn install: install-file.
В любом проекте Android, для которого требуется зависимость от библиотеки, просто используйте:
<dependency>
<groupId>cocos2d_android</groupId>
<artifactId>cocos2d_android</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>apklib</type>
</dependency>
Проверьте Образцы на веб-сайте android-maven-plugin, чтобы увидеть, как правильно использовать apklib.