Mejores prácticas para variantes de construcción con sabor con gradle en android studio
Tengo una aplicación que se produce para diferentes marcas. Ahora tengo dos sabores, brand1 y brand2. La diferencia entre brand1 y brand2 son sólo los archivos de recursos.
Primero asumí que podía establecer todos los datos compartidos en mi ruta principal y las diferencias en el camino con sabor. Pero en este escenario mi compilación falló, porque faltan recursos en mi ruta principal.
- Configurando res srcDirs para androidTest sourceSet
- Crear prueba Android apk utilizando el sistema de compilación gradle
- ¿Cómo puedo comprobar qué versión de plugin de Gradle Android se utiliza en mi proyecto?
- ¿Cómo incluir applicationId en la línea de comandos desde la dependencia build.gradle?
- Error de ejecución para la tarea ': app: processReleaseGoogleServices'. > Ningún cliente coincidente encontrado para el nombre del paquete
Me gustaría seguir así: establecer todas las diferencias de recursos entre las marcas en la ruta principal como datos ficticios. La fusión hará el resto para mí.
En iOS puedo establecer una ruta de compilación para cada meta de compilación. ¿Es algo así posible con sabores? ¿O cuál es la mejor práctica en esta situación?
[EDIT 2013 08 07]
El problema en mi caso fue que creé la aplicación en eclipse y la exportaba a android studio. Aquí se describe con mayor precisión el problema y la solución.
- Android gradle dos diferentes actividades de lanzador para dos sabores de productos diferentes
- No se puede construir el proyecto Gradle con Android Studio
- Cómo configurar el orden de las bibliotecas en el classpath para Android Studio?
- Configuración de Deckard para Gradle. Error con la prueba Robolectric
- Gradle no puede agregar a la compilación 'com.google.android.gms: play-services: 7.0.0'
- Generar archivos de Protobuf java con Square's Wire
- Conflicto con dependencia 'com.android.support:support-annotations'. Las versiones resueltas para la aplicación (23.1.0) y la aplicación de prueba (23.0.1) difieren
- Actualizar Android construido herramienta A 18.0
Otra solución es poner todo lo compartido (básicamente la versión "vainilla" de tu aplicación) como un proyecto de librería, incluyendo recursos predeterminados.
A continuación, puede crear proyectos separados de "marca" que usan el proyecto de biblioteca. Cualquier recurso que ponga en estos "sobrescribirá" los recursos del proyecto de la biblioteca.
http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject
He hecho esto para los clientes y ha funcionado bastante bien.
- ¿Cuál es el número máximo de servicios limitados por el sistema operativo Android?
- ¿Dónde está la carpeta caché de Universal ImageLoader?