¿Cómo crear la mejor estructura de proyectos de aplicaciones para Android con Android Studio y Gradle?

Estoy tratando de cambiar a Android Studio y Gradle, pero tengo bastante algunos problemas con la integración en Studio y construir con Gradle.

  • Tengo una aplicación que depende de varias bibliotecas.
  • Me gustaría usar Android Studio, y el sistema de generación de Gradle.
  • Estoy usando git
  • La mayoría de mis bibliotecas son directamente git clone d desde su ubicación github

Actualmente, lo que tengo es:

 Main Project ├── GH Lib 1 │ ├── <some stuff from the lib> │ └── library │ ├── AndroidManifest.xml │ ├── res │ └── src ├── GH Lib 2 │ └── <same structure as the lib 1> ├── GH Lib 3 │ └── <same structure as the lib 1> │── GH Lib 4 │ └── <same structure as the lib 1> └── My App folder └── AndroidManifest.xml └── res └── src └── libs 

Cada uno de los 'GH Lib X' directorio es el resultado de un git clon de GitHub (por ejemplo: ActionBarSherlock).
'Mi carpeta de aplicación' contiene directamente res , src , AndroidManifest.xml , libs (con jarras), etc.

Primera pregunta

Me gustaría entender cómo puedo integrar todo esto en Studio, con Gradle. Actualmente, cada lib es un módulo y contiene un archivo build.gradle. Mi aplicación contiene también un archivo build.gradle, sin embargo no puedo hacer referencia a las dependencias de otras carpetas, ya que están en la carpeta principal, y este AFAIK no se puede hacer con Gradle.

¿Esta estructura sería mejor?

 My App Folder │── AndroidManifest.xml │── res │── src │── libs └── dependencies │── GH Lib 1 │── GH Lib 2 │── GH Lib 3 │── GH Lib 4 └── My App folder 

Mi segunda pregunta relacionada con esto es la integración con git. Actualmente todas las libs son submódulos git, ¿es una buena idea?

2 Solutions collect form web for “¿Cómo crear la mejor estructura de proyectos de aplicaciones para Android con Android Studio y Gradle?”

Debe mirar el ejemplo de multiproyecto para el diseño adjunto en el documento.

http://tools.android.com/tech-docs/new-build-system

http://docs.google.com/viewer?a=v&pid=sites&srcid=YW5kcm9pZC5jb218dG9vbHN8Z3g6NDYzNTVjMjNmM2YwMjhhNA

Esencialmente usted quiere un nivel superior settings.gradle que atar todas las piezas juntas. Idealmente, deberían estar en un solo reporte de git para hacer su vida más fácil. Sin embargo, usted probablemente puede utilizar el enlace simbólico para vincularlos en un repo de construcción común que contienen su nivel superior settings.gradle.

Esta estructura funcionará muy bien. Tengo una estructura similar y todo está bien en Ubuntu 13.04 y Android Studio 130.729444. Debe proporcionar el archivo settings.gradle en el proyecto raíz con referencias (básicamente es una ruta relativa) a cada módulo que se debe construir.

 include ':my-app', ':gh-lib-1:library', ':gh-lib-2:library' 

El archivo root build.gradle debe contener tareas / configuración que serán comunes para todos los proyectos. Más información sobre la configuración de varios proyectos se puede encontrar aquí: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-project-setup

En este momento, la ubicación de los directorios de origen no se ajusta a la configuración predeterminada de Android Studio. Puede mover sus directorios src , res o configurar la configuración de sourceSets en su build.gradle . Se debe hacer para cada proyecto. Más información sobre la estructura del proyecto: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Configuring-the-Structure

Después de estos pasos, puede intentar importar su proyecto a Android Studio seleccionando el archivo root build.gradle en el cuadro de diálogo 'Importar proyecto'.

Es posible que al principio no pueda construir el proyecto en IDE debido a la Task 'assemble' not found in root project error de Task 'assemble' not found in root project . Este es un error en Android Studio. Afortunadamente, hay una solución para esto: sólo incluya task assemble{} de build.gradle en archivos build.gradle para todos los proyectos 'root'.

  • Gradle zipAlign tarea no funciona?
  • Archivos duplicados copiados en APK META-INF cuando se construye Gradle
  • Generar APK firmado en Android Studio
  • ¿Por qué falla mi prueba de unidad relacionada con JSONObject?
  • Android: marcadores de posición manifiestos para diferentes tipos de compilación
  • Android Studio marca la sintaxis como error, pero gradle compila
  • Android Studio: "Ejecución fallada para la tarea ': app: mergeDebugResources'" si el proyecto se crea en la unidad C:
  • Especificar firma de configuración para Gradle y Cordova 5
  • Error: Ninguna propiedad: GRUPO para la clase: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
  • Error com.google.android.gms / play-services / 8.4.0 / gradle: 2.0.0-alpha5
  • Git - checkout código git remoto en Android Studio proyecto importado con Gradle construir
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.