Variante de varios estilos de Android Gradle
Estoy tratando de construir un proyecto basado en gradle con grupos de sabor. Los grupos son "mercado" y "costo". El problema radica en la gestión de la dependencia.
Por ejemplo, me gustaría hacer algo como compileFreeGplay 'com.google.android.gms:play-services:5.0.89'
, que no es (aún) compatible con el complemento de Android para gradle.
- Vinculación a bibliotecas preconfiguradas con NDK usando gradle
- Puntos de interrupción no reciben éxito en Android Studio
- Cómo agregar org.apache.commons.lang3 a AndroidStudio con gradle
- Cómo personalizar el nombre de archivo APK para los sabores de producto?
- "No se pudo normalizar la ruta de acceso al archivo" cuando se está ejecutando la verificación de gradle
Así que he utilizado una solución basada en esta pregunta SO: https://stackoverflow.com/a/22584908/2904294
La solución funciona y llena las siguientes variables globales correctamente dependiendo de la variante que se está construyendo:
ext { buildType = "" groupCost = "" groupMarket = "" }
Esta es la sección `dependencies':
dependencies { compile 'com.android.support:support-v4:20+' compile 'com.android.support:appcompat-v7:20+' compile 'com.google.android.gms:play-services:5.0.89' println groupMarket + ", " + groupCost if (groupMarket == 'gplay' && groupCost == 'free') { compile files('C:\\Program Files (x86)\\adsSdks\\MobileCoreLibrary\\mobilecore_V0.9.4.jar') println 'inside!!' } else if (groupMarket == 'amazon' && groupCost == 'free') { compile files('C:\\Program Files (x86)\\adsSdks\\Apps-SDK\\Android\\Ads\\lib\\amazon-ads-5.4.78.jar') } }
Los printlns
se muestran correctamente y el código introduce los ifs
como se esperaba. Sin embargo, la biblioteca todavía no está incluida en el proyecto.
Funciona perfectamente si la ifs
fuera de los ifs
así:
dependencies { compile 'com.android.support:support-v4:20+' compile 'com.android.support:appcompat-v7:20+' compile 'com.google.android.gms:play-services:5.0.89' compile files('C:\\Program Files (x86)\\adsSdks\\MobileCoreLibrary\\mobilecore_V0.9.4.jar') }
¿Puede alguien con más experiencia de Gradle señalar lo que me falta aquí? ¡Gracias!
- cómo especificar NDK_TOOLCHAIN_VERSION en el archivo gradle para android ndk build
- Obtener error Gradle "No se pudo reservar espacio suficiente para montón de objetos" constantemente en Intellij IDEA
- Android 5.x ClassNotFoundException funciona bien en 6.0+
- Creación de Android Gradle con subproyectos
- Dependencia de Gradle basada en tipo de construcción y sabor
- Manifiesto de Android Studio Faltando error en Gradle
- ¿Por qué Android Gradle preDexDebug "Origen y destino debe ser diferente" la construcción falló?
- Sigue recibiendo este error cuando estoy tratando de compilar con Gradle en Android Studio en UBUNTU 14.04
- Crear Circular y Transparente Drawable XML Android
- Cómo crear una biblioteca de vista personalizada de Android en Android Studio?