type the studio script plug make for first ext debug available archivo added android build.gradle wear-os android-productflavors android-build-type

the - Proyecto de desgaste de Android con 3 sabores, 3 buildTypes y 2 applicationIdSuffixes



gradle version android studio (1)

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

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'') }

Desde mi wear / 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é por esto que <buildType>WearApp es posible, pero lo que realmente necesito es <flavor><BuildType>WearApp (que no parece ser posible en este momento):

Mantener todas las 9 dependencias de WearApp anteriores funciona bien si elimino el applicationIdSuffixes, pero aún así se crea una apk de desgaste por buildType sin importar qué buildType elija en Android Studio, y realmente necesito el applicationIdSuffixes.

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

EDITAR: No noté esto al principio, pero por alguna razón, las variantes firstDebug, secondDebug y thirdDebug se desarrollan bien con las 9 dependencias de wearApp en build.gradle. El mensaje de error sigue siendo el mismo para firstCustomerTest, firstRelease, secondCustomerTest, secondRelease, thirdCustomerTest y thirdRelease. Todas las variantes compilan las 9 wearApps cada vez, estarían ordenadas 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'') }