Android Studio: migrar complejo build.xml a build.gradle

He migrado mi proyecto de eclipse a android studio con éxito y se ha generado un archivo build.gradle por defecto. El proyecto se basa correctamente y puedo desplegar para depurar etc.

El verdadero problema es la creación de archivos APK de lanzamiento (desde la línea de comandos) para los que solía tener una hormigonada personalizada (llamada vía línea de comandos, no fuera de eclipse).

Mi build.xml personalizado importó el archivo sdk build.xml estándar de la carpeta SDK a través de:

<import file="${sdk.dir}/tools/ant/build.xml" /> 

Así que todo lo que tenía que hacer en mi build.xml era anular objetivos o engancharlos a través de "depends".

Un ejemplo para una anulación:

 <target name="-set-release-mode" depends="-set-mode-check"> <!--Here I rename my output apk files to something like: myapp-versionFromAndroidManifest.apk --> </target 

Y un ejemplo para agregar dependencia:

 <target name="-pre-build" depends="clean"> <!-- my custom code where I copy resource files, process command line arguments use xpath to extract things like the version from the AndroidManifest.xml and write them into custom xml files etc... --> </target 

Así que en general todo el asunto fue muy simple con la hormiga. Pero ahora cuando se trata de migrar a gradle estoy en una pérdida total, la forma de lograr lo mismo que antes en hormiga, específicamente:

  1. Para el build.xml hay un build.xml por defecto que importé en mi compilación de hormigas – ¿existe un archivo build.gradle estándar en algún lugar para poder ver las tareas definidas?
  2. ¿Es posible anular tareas de gradle y si sí: cómo?
  3. Estoy bastante seguro de que el depende = "…" de la hormiga se puede imitar en gradle, pero no tengo ni idea de cómo y que también requieren una respuesta a la pregunta 1.

Yo googled un montón de tutoriales, también tutoriales de migración como (que, lamentablemente, no se ocupan de mis problemas):

https://keepsafe-engineering.tumblr.com/post/87818767721/migrating-android-app-from-ant-to-gradle

Http://ryanharter.com/blog/2013/07/17/migrating-android-projects-to-gradle/

También leí este capítulo de los documentos de gradle que realmente no ayudó en absoluto, porque no responde a la pregunta 1 o 2 o 3 para el caso:

Http://www.gradle.org/docs/current/userguide/ant.html

Lo siguiente dio algunos consejos interesantes:

Http://toastdroid.com/2014/03/28/customizing-your-build-with-gradle/

También intenté copiar el build.xml por defecto de la carpeta sdk en mi propio build.xml y luego simplemente importar ese archivo de construcción de hormigas en gradle y ejecutar la tarea hormiga que arranca de la compilación:

 <target name="release" depends="-set-release-mode, -release-obfuscation-check, -package, -post-package, -release-prompt-for-password, -release-nosign, -release-sign, -post-build" description="Builds the application in release mode."> </target> 

Pero empecé a encontrar problemas que sugerían que esto ya no es una opción, ya que el build.xml por defecto empezó a lanzar errores, que parecían relacionados con la versión del SDK. Y tuve que ensuciar mucho con el original sdk build.xml debido a la nueva estructura del proyecto de estudio de androide, por lo que los archivos no estaban donde se esperaba etc …

2 Solutions collect form web for “Android Studio: migrar complejo build.xml a build.gradle”

  • En primer lugar, te sugiero que importar el proyecto de legado para el estudio de Android. Se creará el script build.gradle apropiado para usted.
  • Y luego, puede listar la lista de gradlew tasks ejecutando gradlew tasks en la raíz de su proyecto.
  • Para depender de algunas tareas, puede utilizar comandos como init.dependsOn anotherTask .

Sólo para dejar constancia: descarté la idea de usar mi ant-build anterior y migré completamente al gradle. La mayoría de las cosas que necesitaba hacer se podía lograr sólo por la estructura de directorios. Puedes encontrar detalles sobre cómo lo hice en mi otra pregunta:

Android Studio: Gradle Product Flavors: Definir propiedades personalizadas

Ahora la segunda parte fue llamar a mi código java que hizo algunas cosas que realmente no quería migrar a groovy / gradle. Así que me di cuenta de cómo ejecutar mi clase de java (aunque en realidad tenía que hacer un archivo jar fuera de él) de la secuencia de comandos gradle:

Android Studio Gradle: Ejecuta el método Java estático (Migración de ANT a Gradle)

Si alguien tiene preguntas, estaré encantado de dar lo mejor de mí y contestarlas.

  • Gradle construido terminado con 520 errores pero APK generado con éxito
  • Cómo agregar org.apache.commons.lang3 a AndroidStudio con gradle
  • INSTALL_FAILED_DEXOPT Error en Android 5.0 en modo de liberación
  • ¿Cómo puedo configurar Android Studio para que pueda compilar cuando esté desconectado (desconectado de Internet)
  • Cómo importar el proyecto android como biblioteca y NO compilarlo como apk (Android studio 1.0)
  • Cambiar el nombre del directorio durante la copia usando Gradle
  • ¿Cómo incluir dependencias en la biblioteca .aar?
  • IntelliJ nuevo androide gradle plugin (0.14. +)
  • Placeholder manifiesto applicationId para varios sabores de construcción no funciona
  • Java.exe terminó con valor de salida no nulo 2 cuando usa Facebook SDK
  • Cómo configurar la versión de la aplicación de Android por número de construir en Jenkins?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.