2013-06-14 6 views
22

У меня есть приложение, которое нужно создавать несколько раз с разными ресурсами для разных клиентов (брендинг, конфигурация и предварительная загрузка данных между клиентами).Возможно ли использовать систему сборки Gradle для Android с Eclipse?

Вслед за вводом/выводом Google в этом году я слышал о новой системе сборки Android на базе Gradle. Поэтому я подумал, что было бы неплохо реализовать этот сценарий с одним источником/несколькими apks, используя скрипт сборки Gradle.

Теперь вот мой вопрос: как я могу начать использовать Gradle для строительства, придерживаясь Eclipse? Все чтения, которые я нашел в Интернете, указывают на преобразование проекта в еще незрелую Android-студию. Я бы хотел отложить переход на Android Studio до тех пор, пока это не будет объявлено «безопасным» для использования компанией Google.

В идеале, я хотел бы иметь возможность подключать сценарии сборки к отладкам и запускам конфигураций Eclipse, очень точно так же, как я могу выбрать и выбрать различные цели сборки для отладки и архивирования в XCode , Если это возможно, какие шаги необходимы для выполнения этой работы?

Извиняюсь за качество noobish этих вопросов, но для меня это на самом деле совершенно неоткрытая страна. Любая помощь приветствуется.

Edit: Наша команда мигрировали в Android Studio в конце октября 2013 года и, начиная с версии 0.4 были сталкиваются все меньше и меньше ошибок. Если ваша организация не является суперконсервативной относительно внедрения среды до 1.0 для разработки, я бы посоветовал вам перейти в холодную воду и попробовать работать с Android Studio и системой сборки Gradle. Единственное, что не хватает IMHO, - это достойная поддержка модульного тестирования.

+1

AFAIK, в настоящий момент официальная поддержка Gradle-построений от Eclipse отсутствует, кроме как делать сборки самостоятельно в командной строке. В конце концов, поддержка проекта Eclipse/Gradle. – CommonsWare

+0

Спасибо, что заставляет меня чувствовать себя менее некомпетентным :-) – Chris

+0

Однако, честно говоря, я понятия не имею, есть ли неофициальный/неподдерживаемый способ достижения вашей цели ... вот почему я размещаю их как комментарии. :-) – CommonsWare

ответ

24

Можно использовать 2 системы сборки (Eclipse + gradle based). Просто убедитесь, что выходные папки отличаются (bin для ADT, build для градации). (обновление для TL; DR: проверить Nodeclipse/Enide Gradle for Eclipse (marketplace))

File -> Export -> Generate Gradle build files просто добавить build.gradle с содержанием ниже (но проверьте версии). Нет существующих файлов.

com.android.tools.build:gradle версия должна быть the latest. Для градиентного типа gradle build, как указано в http://tools.android.com/tech-docs/new-build-system/user-guide. Попробуйте gradle tasks для получения дополнительной информации. (На моем медленном подключении к Интернету потребовалось 1 час! Для градле для загрузки всех необходимых зависимостей)

Vogella tutorial http://www.vogella.com/articles/AndroidBuild/article.html еще не готов. Другие онлайн-уроки на самом деле не закончены http://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/

Eclipse ADT пока не использует градлу, я думаю, что он будет полностью отполирован в Android Studio. Было бы неразумно начинать использовать развивающиеся технологии в обеих IDE одновременно.

См. Нижеприведенный пример build.gradle. Если вы уже освоили град, тогда, возможно, Маги не нужны вообще. Для последних build.gradle шаблон для классического Android-проекта check gh.c/N/n-1/b/m/o.n.e.e.g/docs/android/build.gradle.

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

android { 
    compileSdkVersion 8 
    buildToolsVersion "19.0.0" 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     // Move the tests to tests/java, tests/res, etc... 
     instrumentTest.setRoot('tests') 

     // Move the build types to build-types/<type> 
     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
     // This moves them out of them default location under src/<type>/... which would 
     // conflict with src/ being used by the main source set. 
     // Adding new build types or product flavors should be accompanied 
     // by a similar customization. 
     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
    } 
} 

ADT-Bundle не поставляется с торговой площадкой Eclipse, поэтому сайт обновления может быть использован.

Обновление репозитория p2 для Gradle Integration for Eclipse является

http://dist.springsource.com/release/TOOLS/gradle

Но в версии 3.4.0 она не предоставляет редактор для .gradle файлов. Таким образом, нет смысла иметь его для разработки Android.

Я бы пошел со сборкой по умолчанию ADT, имея градуировку как вторичную сборку для экспериментов и следя за тем, чтобы поток ошибок на http://tools.android.com/tech-docs/new-build-system стал редким. (Это должно быть около формальной версии 1.0)

UPDATE: 2014-04-15

Alex Ruiz's (from Android team) Blog about Android, Gradle & ADT

Gradle Модель Андроида

Вместо создания IDE конкретных моделей Android/Gradle, мы решил иметь IDE-агностическое представление проекта Gradle. Таким образом, у нас есть один источник информации, который легче поддерживать. Интеграция IDE будет реализована как плагин для каждой поддерживаемой IDE (в нашем случае Eclipse и IDEA). Основным преимуществом этого подхода является то, что мы можем освободить плагин Gradle независимо от модулей интеграции IDE. Например, мы можем отправить новую версию плагина Eclipse с несколькими исправлениями ошибок, не затрагивая сторону Gradle от Android.

По состоянию на апрель 2014 года затмений-Gradle плагин не совместим с Android-Gradle плагин:

Как ответил Issue 57668 на Android команды (поднятый @arcone)

Project Member # 2 x ... @ android.com

Плагин eclipse несовместим с плагином Android.

Вы не сможете импортировать проект градиента Android в Eclipse, используя поддержку Gradle по умолчанию в Eclipse.

Чтобы заставить его работать в Eclipse, мы должны изменить плагин Gradle для Eclipse, таким же образом мы изменяем поддержку Gradle в IntelliJ

То есть Android команда работает над Gradle плагин для IntelliJ и плагин gradle для Eclipse также должен быть обновлен.

Существует effort at Nodeclipse, чтобы сгладить время перехода. И продолжайте развиваться в Eclipse, все еще экспериментируя или полностью используя gradle.

Nodeclipse/Enide Gradle for Eclipse (marketplace)

Некоторые скриншоты для Gradle для Eclipse:

+2

Ничего себе, спасибо за обновление ответа. Тем временем, однако, наша команда полностью перешла на Android Studio, и мы очень довольны. Я считаю, что этот ответ будет очень полезен для любых других разработчиков, которые ищут головоломку системы Android. Еще раз спасибо! – Chris

+1

Время решает все, но иногда стремление к более новому программному обеспечению будет тратить больше времени, чем ожидалось. По состоянию на апрель 2014 года новая система сборки на основе град составляет 0,9 и, кажется, подходит к финальной версии 1.0. Пришло время для более широкого принятия. –

+1

Команда Google, похоже, полностью пренебрегает добавлением поддержки для создания приложений Android с градиентом в eclipse. – Martin

1
  1. Установка Gradle:
    а. http://gradle.org/gradle-download/ b. Выберите 2.1 из раздела предыдущих выпусков. c. Разархивируйте в удобной папке. (Пример: D: \ Graddle \ gradle-2.1) d. Установите переменные системной среды. i. GRADLE_HOME как D: \ Graddle \ gradle-2.1) ii. GRADLE_OPTS as -XX: MaxPermSize = 512m iii. % GRADLE_HOME% \ bin до пути iv. Установите ANDROID_HOME (пример: D: \ android-sdk) v. Добавить «% ANDROID% \ platform-tools» в путь.

e. Открывается командная строка и контрольная градация. Могу использовать gradle -version для проверки.

  1. Установить Gradle eclipse Plugin: a. Запуск Eclipse b. Помощь> Eclipse Market Place c. Поиск "gradle" d. В этом случае выберите «Nodeeclipse/enide» e. Выделите все перечисленные, примите &. f. Перезапустите eclipse после его установки.

  2. Set Gradle & Java-дома: a. Запустите затмение. b. Окно> Предпочтения> Gradle EnIDE c. Установите их, если они не установлены: i. Установлен исходный дом для использования (пример: D: \ Graddle \ gradle-2.1) ii. Альтернативный JAVA_HOME для использования установлен (пример: C: \ Program Files (x86) \ Java \ jdk1.7.0_60) iii. Параметры JVM для GRADLE_OPTS установлены на «-XX: MaxPermSize = 512m»

  3. Построить проект: a. Разверните APK в eclipse Java explorer. b. Щелкните правой кнопкой мыши по build.gradle c. Run As> Gradle GUI d. Линия Comand: град чистой сборки e. Подождите завершения сборки: сборка в первый раз займет несколько минут. f. Если ошибка Build dex или ошибка кучи Java: i. Откройте build.gradle в редакторе. ii. Для создания нескольких dex - установите соответствующий javaMaxHeapSize на основе java (javaMaxHeapSize = 1024M для 32-битной Java, 2048M для 64-битной Java) iii. Может комментировать подписание (// применять от: "$ rootProject.projectDir/jenkins_config/gradle/signed.gradle";), чтобы избежать подписи для сборки отладки. iv. Постройте снова после этих исправлений.

  4. Установка устройства на устройстве: a. Подключите устройство к m/c. b. Щелкните правой кнопкой мыши по build.gradle c. Run As> gradle installDebug Gradle Начало Android d. Ждите окончания установки

  5. Отладка: a. Запустите приложение b. Присоедините отладчик (DDMS> Devices> App). c.Мы можем отлаживать несколько проверок устройств.

Смежные вопросы