Настройка библиотеки поддержки Android с помощью maven
Я отчасти новичок в Android.
Я создаю модуль maven для приложения для Android (он находится в существующем многомодульном проекте), который использует библиотеки поддержки Google (v4, v7, v13). Каков наиболее подходящий способ заставить его работать с maven.
Я хочу, чтобы мой проект имел возможность строить с Jenkins (Maven), поэтому я не могу связать какие-либо проекты IDE или любые другие средства, не связанные с maven.
- Избегайте перезагрузки с помощью asynctask при изменении ориентации в android
- READ_EXTERNAL_STORAGE разрешение для Android
- Изменение ориентации Android VideoView с помощью буферизованного видео
- Заменить селекторные изображения программно
- Как отключить элементы в представлении списка?
Также приемлемы любые варианты комбинирования maven / gradle в Дженкинсе.
- Интеграция сканера QR-кода ZXing без установки BarCode Scanner
- Как отправить запрос POST в JSON с помощью HTTPClient в Android?
- Жизненный цикл Android Fragment над изменениями ориентации
- Обновите приложение для Android (без Google Play)
- Сообщение Android «Обнаружение экрана», если пользователь пытается предоставить разрешение при показе уведомления
- Постоянно скрывать строку состояния Android
- Android: панель прогресса Semi Circle
- Как включить или отключить компонент?
к сожалению, эти библиотеки не находятся в центральном репозитории maven. поэтому вам нужно использовать maven-android-sdk-deployer ( link ) для установки библиотек в ваш repository maven. затем добавьте необходимые библиотеки в файл pom.xml, как описано в readme.
Помимо maven-android-sdk-deployer , если у вас всегда установлен Android SDK с такими дополнениями Google, как я, вы можете определить локальный repository в файле POM проектов и позволить maven загружать зависимости из этого локального.
Рациональным из-за этого является то, что Google уже выпустил дополнительные дополнения в макете, совместимом с репозиторием maven. Для моей собственной машины это выглядит так:
jerry-mac-mini:android jerry$ pwd /Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android jerry-mac-mini:android jerry$ tree m2repository m2repository ├── NOTICE.txt ├── com │ └── android │ └── support │ ├── appcompat-v7 │ │ ├── 18.0.0 │ │ │ ├── appcompat-v7-18.0.0.aar │ │ │ ├── appcompat-v7-18.0.0.aar.md5 │ │ │ ├── appcompat-v7-18.0.0.aar.sha1 │ │ │ ├── appcompat-v7-18.0.0.pom │ │ │ ├── appcompat-v7-18.0.0.pom.md5 │ │ │ └── appcompat-v7-18.0.0.pom.sha1 │ │ ├── 19.0.0 │ │ │ ├── appcompat-v7-19.0.0.aar │ │ │ ├── appcompat-v7-19.0.0.aar.md5 .............
Поэтому мне просто нужно добавить некоторые дополнительные строки в свой файл POM, а «env.ANDROID_HOME» – это переменная окружения, указывающая на путь установки Android SDK.
android-support file://${env.ANDROID_HOME}/extras/android/m2repository ...... com.android.support support-v4 19.0.1
После этих шагов Maven в моем ADT, включенном Eclipse и консоли, с радостью разрешит нужные зависимости, например:
jerry-mac-mini:android-app-project jerry$ mvn dependency:tree [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building android-app-project 0.0.5-SNAPSHOT [INFO] ------------------------------------------------------------------------ Downloading: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.pom Downloaded: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.pom (403 B at 28.1 KB/sec) Downloading: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.jar Downloaded: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.jar (621 KB at 16783.8 KB/sec) [INFO] [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ android-app-project --- [INFO] team.apollo:android-app-project:apk:0.0.5-SNAPSHOT [INFO] +- com.google.android:android:jar:2.3.3:provided [INFO] | +- org.apache.httpcomponents:httpclient:jar:4.0.1:provided [INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.0.1:provided [INFO] | | \- commons-codec:commons-codec:jar:1.3:provided [INFO] | +- org.khronos:opengl-api:jar:gl1.1-android-2.1_r1:provided [INFO] | +- xerces:xmlParserAPIs:jar:2.6.2:provided [INFO] | \- org.json:json:jar:20080701:provided [INFO] +- com.android.support:support-v4:jar:19.0.1:compile [INFO] +- com.google.code.gson:gson:jar:2.2.2:compile [INFO] +- de.mindpipe.android:android-logging-log4j:jar:1.0.3:compile [INFO] \- log4j:log4j:jar:1.2.16:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.339s [INFO] Finished at: Mon Mar 24 14:32:00 CST 2014 [INFO] Final Memory: 10M/325M [INFO] ------------------------------------------------------------------------
Я просто столкнулся с одной и той же проблемой и закончил развертывание в публичном репозитории gitgub.
Если вам все еще нужно использовать его, вы можете сделать одно из следующего:
Добавьте repository github в раздел репозиториев в pom.xml:
android.support-mvn-repo https://raw.github.com/kmchugh/android.support/mvn-repo true daily
Затем вы можете добавить зависимость следующим образом:
uk.co.icatalyst android-support-v4 18 compile
Или, разблокируйте repository, вы можете использовать свой собственный URL-адрес для URL-адреса репозитория.
[Изменить] Я обновил библиотеки, альтернативная зависимость:
com.android.support support-v4 18.0.0 compile
И для gridlayout:
com.android.support gridlayout-v7 18.0.0 compile
Я просто использовал функцию системной области, предоставляемую maven
com.google.android support-v4 19.0.1 system ${env.ANDROID_HOME}/extras/android/support/v4/android-support-v4.jar
Я бы порекомендовал держать Android artefacts как часть вашего основного хранилища MAVEN. Используя такой подход, вы избежите дополнительных конфигураций и, как результат, любых мишмашей. Затем вы сможете использовать простые файлы POM для всех ваших проектов на стороне клиента.
Чтобы сделать это или выполните команду следующим образом:
mvn install:install-file -DgroupId=com.google.android -Dversion=23.1.1 -Dpackaging=jar -DartifactId=support-v13 -Dfile=support-v13-23.1.1-sources.jar
или просто скопируйте файл ./extras/android/m2repository/com/android/ в ./rootMavenRepo/com/google/android вашего репозитория.
Благодаря Google. Теперь вы можете сделать это
- Убедитесь, что раздел репозиториев включает maven
allprojects { repositories { jcenter() maven { url "https://maven.google.com" } } }
- Добавить библиотеку поддержки в раздел зависимостей
dependencies { ... compile "com.android.support:support-core-utils:25.3.1" }