youtubers tesis sobre sirve resumida que para investigaciones investigacion historia caracteristicas android gradle android-build

android - sirve - tesis sobre youtube pdf



Cómo definir diferentes dependencias para diferentes sabores de productos (3)

Estoy convirtiendo una de mis aplicaciones a Gradle y me gustaría utilizar las nuevas características de compilación para tener un sabor basado en anuncios pagados y gratuitos.

Solo quiero que la versión basada en anuncios dependa del admob SDK.

Mi archivo de compilación se ve así:

buildscript { repositories { mavenCentral() } dependencies { classpath ''com.android.tools.build:gradle:0.5.+'' } } apply plugin: ''android'' repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 10 targetSdkVersion 18 } productFlavors { Pro { packageName "de.janusz.journeyman.zinsrechner.pro" } Free { dependencies { } } } } dependencies { compile ''com.android.support:support-v4:18.0.+'' compile ''com.actionbarsherlock:actionbarsherlock:4.4.0@aar'' compile fileTree(dir: ''libs'', include: ''*.jar'') }

¿Hay alguna manera de configurar la dependencia en el sabor del producto libre para que tenga su propia carpeta libs fusionada con la carpeta libs principal que contiene bibliotecas generales para ambos sabores?

Si esto es posible, ¿cómo definiría esta carpeta?


Necesita agregar manualmente la configuración para cada sabor. Ejemplo

configurations { proCompile freeCompile } dependencies { compile ''com.parse.bolts:bolts-tasks:1.3.0'' proCompile ''com.android.support:design:23.1.1'' freeCompile ''com.parse:parse-android:1.12.0'' }


Para definir una dependencia específica de sabor, puede usar proCompile lugar de compile en su sección de dependencia. Cuando ejecuta propiedades gradle, obtiene una descripción general de las configuraciones automáticas creadas.

El archivo de construcción correcto se ve así:

buildscript { repositories { mavenCentral() } dependencies { classpath ''com.android.tools.build:gradle:1.2.3'' } } apply plugin: ''com.android.application'' repositories { mavenCentral() } android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { minSdkVersion 10 targetSdkVersion 22 } productFlavors { pro { packageName "de.janusz.journeyman.zinsrechner.pro" } free { } } } dependencies { compile ''com.android.support:support-v4:22.2.0'' freeCompile ''com.google.android.gms:play-services-ads:7.5.0'' }


Editar: ¡Recomiendo usar una de las otras técnicas!

Una alternativa a la respuesta aceptada es esta:

ext { flavorType = "" } gradle.startParameter.getTaskNames().each { task -> if(task.contains("flavor1")){ flavorType = "flavor1" } else if (task.contains("flavor2")){ flavorType = "flavor2" } else { flavorType = "flavor3" } } if(flavorType == ''flavor1'' || flavorType == ''flavor2'') { compile ''com.android.support:support-v4:18.0.+'' }