build.gradle en el proyecto vs. build.gradle en la aplicación

Empecé un proyecto en Android Studio, con IntelliJ.

El proyecto incluye dos archivos llamados build.gradle . Uno está debajo de la app la carpeta, y uno está debajo de la carpeta principal que es mi nombre del proyecto, diga MyProject .

¿Por qué la necesidad de dos? ¿Cuál es la diferencia entre los dos build.gradle s?

El proyecto de Android Studio consta de módulos, bibliotecas, archivos de manifiesto y archivos de compilación de Gradle.

Cada proyecto contiene un archivo de generación Gradle de nivel superior. Este archivo se llama build.gradle y se puede encontrar en el directorio de nivel superior.

Este archivo normalmente contiene configuración común para todos los módulos, funciones comunes.

Ejemplo:

  //gradle-plugin for android buildscript { repositories { mavenCentral() //or jcenter() } dependencies { classpath 'com.android.tools.build:gradle:0.12.2' } } // common variables ext { compileSdkVersion = 19 buildToolsVersion = "20.0.0" } // a custom function def isReleaseBuild() { return version.contains("SNAPSHOT") == false } //common config for all projects allprojects { version = VERSION_NAME repositories { mavenCentral() } } 

Todos los módulos tienen un archivo build.gradle específico . Este archivo contiene toda la información sobre este módulo (porque un proyecto puede contener más módulos), como config, construir tyoes, información para firmar su apk, dependencias ….

Ejemplo:

 apply plugin: 'com.android.application' android { //These lines use the constants declared in top file compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionName project.VERSION_NAME //it uses a property declared in gradle.properties versionCode Integer.parseInt(project.VERSION_CODE) } // Info about signing signingConfigs { release } // Info about your build types buildTypes { if (isReleaseBuild()) { release { signingConfig signingConfigs.release } } debug { applicationIdSuffix ".debug" versionNameSuffix "-debug" } } // lint configuration lintOptions { abortOnError false } } //Declare your dependencies dependencies { //Local library compile project(':Mylibrary') // Support Libraries compile 'com.android.support:support-v4:20.0.0' // Picasso compile 'com.squareup.picasso:picasso:2.3.4' } 

Puede encontrar más información aquí: http://developer.android.com/sdk/installing/studio-build.html

  • Android Studio siempre excluye la carpeta de compilación / fuente
  • Android Studio 0.2.7 generar excepción con Gradle
  • Error: Gradle: Error de ejecución de la tarea ': app: crashlyticsCleanupResourcesDebug'. > Error de Crashlytics Developer Tools
  • NPE al llamar a MockitoAnnotations.initMocks () en AndroidTestCase
  • Gradle - build sass por productflavor (carpeta múltiple)
  • Cómo leer un archivo solo de prueba en la prueba de unidad de Android
  • No puedo compilar mi proyecto android
  • Reemplace dinámicamente applicationId en el archivo_paths.xml
  • Uso de Jenkins para construir un proyecto de gradol android falla
  • Error "Paquete R no existe" al crear con Gradle desde la línea de comandos
  • Copie el constructor usando "initWith" para "productFlavors" y "sourceSets"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.