¿Es posible usar el sistema de compilación de Gradle para Android con Eclipse?

Tengo una aplicación que necesita ser compilada varias veces con diferentes recursos para distintos clientes (marcado, configuración y cambio de datos precargados entre clientes).

A raíz de Google I / O de este año, he oído hablar del nuevo sistema de compilación Android basado en Gradle. Así que pensé, sería una buena idea, realizar este escenario de una fuente / múltiples-apks utilizando un script de compilación de Gradle.

Ahora viene mi pregunta: ¿Cómo puedo empezar a usar Gradle para la construcción mientras se adhiere a Eclipse? Todas las lecturas que encontré en línea apuntan a convertir el proyecto al todavía inmaduro Android Studio. Me gustaría dejar de migrar a Android Studio hasta que se declare "seguro" para uso en producción de Google.

Idealmente, me gustaría poder conectar los guiones de construcción a las configuraciones de depuración y ejecución de Eclipse, de la misma manera que puedo seleccionar y elegir diferentes objetivos de compilación para depurar y archivar en XCode. Si eso es posible, ¿qué pasos se requieren para hacer que funcione?

Me disculpo por la calidad noobish de estas preguntas, pero para mí esto es realmente un país sin descubrir. Cualquier ayuda es apreciada.

Edit: Nuestro equipo ha migrado a Android Studio a finales de octubre de 2013 y desde la versión 0.4 se encuentran cada vez menos errores. Si su organización no es muy conservadora sobre la adopción de entornos pre-1.0 para el desarrollo, le animo a saltar al agua fría y tratar de trabajar con Android Studio y su sistema de generación de Gradle. La única cosa importante que falta IMHO es el apoyo decente para la unidad de prueba.

Es posible utilizar 2 sistemas de construcción (basados ​​en Eclipse + gradle). Sólo asegúrese de carpetas de salida son diferentes ( bin para ADT, build para gradle). (Actualización para TL, DR: marque Nodeclipse / Enide Gradle para Eclipse ( mercado ))

File -> Export -> Generate Gradle build files sólo agregará build.gradle con el contenido a continuación (pero comprobar versiones). No se cambian los archivos existentes.

com.android.tools.build:gradle versión com.android.tools.build:gradle debería ser la más reciente . Para gradle tipo gradle build como se dijo en http://tools.android.com/tech-docs/new-build-system/user-guide . Pruebe gradle tasks para más. (En mi lenta conexión a Internet tomó 1 hora para gradle para descargar todas las dependencias necesarias)

Vogella tutorial http://www.vogella.com/articles/AndroidBuild/article.html todavía no está listo. Otros tutoriales en línea no están realmente terminados http://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/

Eclipse ADT todavía no está usando gradle, creo que será pulido dentro de Android Studio primero. No sería tan sabio empezar a usar la tecnología en evolución en ambos IDEs al mismo tiempo.

Vea el ejemplo de build.gradle continuación. Si ya dominó gradle, entonces tal vez Wizards no es necesario en absoluto. Para obtener la última plantilla de build.gradle para el proyecto clásico de Android, compruebe gh.c / N / n-1 / b / m / oneeg / 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 no viene con Eclipse Marketplace, por lo que se podría utilizar el sitio de actualización.

Actualizar el repositorio p2 para la integración de Gradle para Eclipse es

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

Pero a partir de la versión 3.4.0 no proporciona Editor para archivos .gradle. Así que no hay sentido de tenerlo para el desarrollo de Android.

Yo iría con ADT predeterminado construir, teniendo gradle como secundaria construir para las experimentaciones y mantener un ojo cuando el flujo de errores en http://tools.android.com/tech-docs/new-build-system se vuelve raro. (Que debería estar alrededor de la versión 1.0 formal)

ACTUALIZACIÓN: 2014-04-15

Alex Ruiz (del equipo de Android) Blog sobre Android, Gradle & ADT

Modelo Gradle de Android

En lugar de crear modelos Android / Gradle específicos de IDE, decidimos tener una representación agnóstica del IDE de un proyecto Gradle. De esta manera, tenemos una sola fuente de información que es más fácil de mantener. La integración del IDE se implementará como un complemento para cada IDE soportado (en nuestro caso, Eclipse e IDEA). El principal beneficio de este enfoque es que podemos liberar el plug-in Gradle independientemente de los complementos de integración IDE. Por ejemplo, podemos enviar una nueva versión del complemento de Eclipse que tiene varias correcciones de errores, sin afectar al lado de Gradle de Android.

A partir de abril de 2014 eclipse-gradle plugin no es compatible con plugin android-gradle:

Según lo respondido en el número 57668 por el equipo de Android (planteado por @arcone)

Miembro del proyecto # 2 x … @ android.com

El complemento de eclipse no es compatible con el complemento de Android.

No podrá importar un proyecto de gradle de Android a Eclipse utilizando el soporte predeterminado de Gradle en Eclipse.

Para que funcione en Eclipse tendremos que cambiar el plugin Gradle para Eclipse, de la misma manera que estamos modificando el soporte de Gradle en IntelliJ

Que es el equipo de Android está trabajando en gradle plugin para IntelliJ y gradle plugin para Eclipse necesita ser actualizado también.

Hay esfuerzo en Nodeclipse para suavizar los tiempos de transición. Y continúe desarrollándose en Eclipse mientras sigue experimentando o usando gradle.

Nodeclipse / Enide Gradle para Eclipse ( mercado )

Algunas capturas de pantalla para Gradle for Eclipse:

  1. Instalar Gradle:
    a. http://gradle.org/gradle-download/ b. Elija 2.1 de la sección de releases anteriores. do. Descomprimir en la carpeta conveniente. (Ejemplo: D: \ Graddle \ gradle-2.1) d. Establecer variables de entorno del sistema. yo. GRADLE_HOME como D: \ Graddle \ gradle-2.1) ii. GRADLE_OPTS como -XX: MaxPermSize = 512m iii. % GRADLE_HOME% \ bin a la ruta iv. Establezca ANDROID_HOME (Ex: D: \ android-sdk) v. Agregue "% ANDROID% \ platform-tools" a path.

mi. Abra el símbolo del sistema y seleccione gradle. Puede usar gradle -version para verificar.

  1. Instalar el plugin eclipse de Gradle: a. Ejecutar Eclipse b. Ayuda> Eclipse Market Place c. Buscar "gradle" d. En eso elegir "Nodeeclipse / enide" e. Seleccione todos los listados, acepte e instale. F. Reinicie eclipse una vez instalado.

  2. Establecer Gradle & Java Homes: a. Ejecutar eclipse. segundo. Ventana> Preferencias> Gradle EnIDE c. Establezca estos si no se establece: i. Gradle inicio de uso se establece (Ex: D: \ Graddle \ gradle-2.1) ii. JAVA_HOME alternativo a utilizar se establece (Ej: C: \ Archivos de programa (x86) \ Java \ jdk1.7.0_60) iii. Las opciones de JVM para GRADLE_OPTS se establecen en "-XX: MaxPermSize = 512m"

  3. Construir el proyecto: a. Expanda APK en eclipse Java explorer. segundo. Haga clic derecho en build.gradle c. Ejecutar como> Gradle GUI d. Línea Comand: gradle clean build e. Espere a que finalice la compilación: La primera vez que se construya tendrá varios minutos. F. Si el error Build dex o error de espacio de montón de Java: i. Abra build.gradle en el editor. Ii. Para las compilaciones de dex múltiple: fije javaMaxHeapSize apropiado basado en su java (javaMaxHeapSize = 1024M para Java 32bit, 2048M para Java 64bit) iii. Puede comentar la firma (// se aplica desde: "$ rootProject.projectDir / jenkins_config / gradle / signing.gradle";) para evitar firmar para la compilación de depuración. Iv. Crear de nuevo después de estos arreglos.

  4. Instalar el dispositivo Build On: a. Conecte el dispositivo a m / cb Haga clic derecho en build.gradle c. Ejecutar Como> gradle installDebug Gradle Android inicio d. Espere a que finalice la instalación

  5. Construcción de depuración: a. Inicie la aplicación b. Adjunte el depurador (DDMS> Dispositivos> Aplicación). do. Podemos depurar en pocos dispositivos comprobados.

  • Error: Error de ejecución para la tarea ': app: validateExternalOverrideSigning'
  • Errores de Gradle en Android Studio
  • Error de configuración de la biblioteca de asistencia de Android
  • ¿Por qué todavía estoy recibiendo java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ attr?
  • Android Studio crear una variante de construcción / tipo excluyendo jniLibs?
  • Android Studio: Android Manifest no existe o tiene una etiqueta raíz incorrecta
  • AssemblyRelease task dependency - Solicitar contraseña de keystore
  • Error al resolver: okhttp loggin-interceptor
  • Android: ejecución de pruebas instrumentadas en el servidor de TeamCity
  • ¿Cuál es el alcance de dependencia por defecto en Gradle en Android?
  • Android Studio proguardRelease FALLO debido biblioteca de frasco de salida vacío
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.