Android proyecto de desgaste con 3 sabores, 3 buildTypes y 2 applicationIdSuffixes

Cuando construyo mi proyecto después de intentar combinar sabores de wearApp y buildTypes con applicationIdSuffixes, consigo el mensaje de error siguiente:

Error:Execution failed for task ':app:handleFirstCustomerTestMicroApk'. > The main and the micro apps do not have the same package name. 

Desde mi app / build.gradle:

 buildTypes { debug { applicationIdSuffix '.debug' debuggable true embedMicroApp = true } customerTest { applicationIdSuffix '.customertest' debuggable true embedMicroApp = true } release { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' minifyEnabled true embedMicroApp = true } } productFlavors { first { applicationId 'com.my.app.first' } second { applicationId 'com.my.app.second' } third { applicationId 'com.my.app.third' } } dependencies { firstWearApp project(path: ':wear', configuration: 'firstDebug') firstWearApp project(path: ':wear', configuration: 'firstCustomerTest') firstWearApp project(path: ':wear', configuration: 'firstRelease') secondWearApp project(path: ':wear', configuration: 'secondDebug') secondWearApp project(path: ':wear', configuration: 'secondCustomerTest') secondWearApp project(path: ':wear', configuration: 'secondRelease') thirdWearApp project(path: ':wear', configuration: 'thirdDebug') thirdWearApp project(path: ':wear', configuration: 'thirdCustomerTest') thirdWearApp project(path: ':wear', configuration: 'thirdRelease') } 

De mi desgaste / build.gradle:

 buildTypes { debug { applicationIdSuffix '.debug' minifyEnabled false } customerTest { applicationIdSuffix '.customertest' minifyEnabled false } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } productFlavors { first { applicationId 'com.my.app.first' } second { applicationId 'com.my.app.second' } third { applicationId 'com.my.app.third' } } android { publishNonDefault true } 

Sé de estos que <buildType>WearApp es posible, pero lo que realmente necesito es <flavor><BuildType>WearApp (que no parece ser posible ahora):

  • El uso de aplicaciones de Android no coincide con los sabores
  • Wear App y con tipo de compilación personalizado con applicationIdSuffix
  • Https://code.google.com/p/android/issues/detail?id=74658

Mantener todas las dependencias de 9 wearApp como se muestra funciona si elimino la aplicaciónIdSuffixes, pero luego se construye un desgaste apk por buildType no importa lo que buildType que elija en Android Studio – y realmente necesito el applicationIdSuffixes.

Alguien tiene una solución para esto? A partir de hoy estoy añadiendo y eliminando las dependencias de wearApp manualmente cada vez que necesito cambiar mi buildType y / o sabor, y no es exactamente una solución con la que me sienta cómodo a largo plazo.

EDIT: No me di cuenta de esto al principio, pero por alguna razón variantes firstDebug, secondDebug y thirdDebug construye muy bien con todas las dependencias de 9 wearApp en build.gradle. El mensaje de error sigue siendo el mismo para firstCustomerTest, firstRelease, secondCustomerTest, secondRelease, thirdCustomerTest y thirdRelease. Todas las variantes compilar el 9 wearApps cada vez, sería aseado para reducir esto a 1.

Según este post

Prueba esto

 configurations { firstDebugWearApp firstCustomerTestWearApp firstReleaseWearApp secondDebugWearApp ...// And all the others } dependencies { firstDebugWearApp project(path: ':wear', configuration: 'firstDebug') firstCustomerTestWearApp project(path: ':wear', configuration: 'firstCustomerTest') firstReleaseWearApp project(path: ':wear', configuration: 'firstRelease') secondDebugWearApp project(path: ':wear', configuration: 'secondDebug') secondCustomerTestWearApp project(path: ':wear', configuration: 'secondCustomerTest') secondReleaseWearApp project(path: ':wear', configuration: 'secondRelease') thirdDebugWearApp project(path: ':wear', configuration: 'thirdDebug') thirdCustomerTestWearApp project(path: ':wear', configuration: 'thirdCustomerTest') thirdReleaseWearApp project(path: ':wear', configuration: 'thirdRelease') } 
  • Uso de Proguard para eliminar clases no utilizadas en la biblioteca de Servicios de Google Play
  • android: app: transformClassesWithDexForDebug
  • Android Studio: No se pudo encontrar com.android.tools.build:gradle:2.0.0-alpha2
  • Todas las bibliotecas com.android.support deben utilizar la misma especificación de versión
  • Intentando crear un proyecto después de agregar la carpeta values-21 y está mostrando error
  • 'No se encontró ningún identificador de recurso para el atributo', incluso después de usar el espacio de nombres http://schemas.android.com/apk/res-auto
  • El caché de dependencias de Gradle puede estar dañado
  • Error: Error de ejecución de la tarea ': app: processDebugGoogleServices'. > Solucione el conflicto de versiones
  • "MinifyEnabled" vs "shrinkResources" - ¿cuál es la diferencia? Y cómo obtener el espacio guardado?
  • No se puede normalizar la ruta en bintrayUpload
  • Android Studio gradle construir con éxito a pesar del error de nivel de api
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.