para - gradle version android studio
error de DawnDimensions Gradle-Android Studio 3.0 Canary 1 (4)
Desde issuetracker.google.com/issues/65867056 :
Debe tener solo un bloque de buildScript en la raíz build.gradle. Si está utilizando compilaciones compuestas, actualmente nuestro complemento no lo admite debido a las limitaciones en Gradle.
EDIT: Supongo que esto ahora funciona para las últimas versiones de gradle
Me gustaría actualizar mi proyecto a Android Studio 3.0 Canary 1 y al plugin gradle: 3.0.0-alpha1, pero tengo un problema con la definición correcta de sabores para los proyectos incluidos.
Seguí la guía de migración oficial de Google: https://developer.android.com/studio/preview/features/new-android-plugin-migration.html
En mi aplicación principal build.gradle definí el sabor " myflavor ", según lo recomendado por la guía de migración:
android {
flavorDimensions "myflavor"
productFlavors {
dev {
dimension "myflavor"
minSdkVersion 21
}
prod {
dimension "myflavor"
minSdkVersion 16
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
debuggable false
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
dependencies {
compile project('':util'')
}
En mi módulo util (productor) incluido, traté de incluirlo sin una definición de saborDimensiones, productosFlavores y tipos de construcción. Me sale el siguiente error de gradle:
Error:Could not resolve all dependencies for configuration '':app:prodDebugCompileClasspath''.
Cannot choose between the following configurations on project :util:
- debugApiElements
- releaseApiElements
All of them match the consumer attributes:
- Configuration ''debugApiElements'':
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but wasn''t required.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but wasn''t required.
- Found com.android.build.gradle.internal.dependency.VariantAttr ''VariantAttr{name=debug}'' but wasn''t required.
- Required myflavor ''ProductFlavorAttr{name=prod}'' but no value provided.
- Required org.gradle.api.attributes.Usage ''for compile'' and found compatible value ''for compile''.
- Configuration ''releaseApiElements'':
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but wasn''t required.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=release}'' but wasn''t required.
- Found com.android.build.gradle.internal.dependency.VariantAttr ''VariantAttr{name=release}'' but wasn''t required.
- Required myflavor ''ProductFlavorAttr{name=prod}'' but no value provided.
- Required org.gradle.api.attributes.Usage ''for compile'' and found compatible value ''for compile''.
Al definir las mismas Dimensiones de sabor, productFlavors y buildTypes en: util como en main: app, aparece el siguiente mensaje de error:
Error:Could not resolve all dependencies for configuration '':app:prodDebugCompileClasspath''.
Cannot choose between the following configurations on project :util:
- devDebugApiElements
- devReleaseApiElements
- prodDebugApiElements
- prodReleaseApiElements
All of them match the consumer attributes:
- Configuration ''devDebugApiElements'':
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but wasn''t required.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but wasn''t required.
- Found com.android.build.gradle.internal.dependency.VariantAttr ''VariantAttr{name=devDebug}'' but wasn''t required.
- Required myflavor ''ProductFlavorAttr{name=prod}'' but no value provided.
- Found myflavor ''ProductFlavorAttr{name=dev}'' but wasn''t required.
- Required org.gradle.api.attributes.Usage ''for compile'' and found compatible value ''for compile''.
- Configuration ''devReleaseApiElements'':
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but wasn''t required.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=release}'' but wasn''t required.
- Found com.android.build.gradle.internal.dependency.VariantAttr ''VariantAttr{name=devRelease}'' but wasn''t required.
- Required myflavor ''ProductFlavorAttr{name=prod}'' but no value provided.
- Found myflavor ''ProductFlavorAttr{name=dev}'' but wasn''t required.
- Required org.gradle.api.attributes.Usage ''for compile'' and found compatible value ''for compile''.
- Configuration ''prodDebugApiElements'':
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but wasn''t required.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but wasn''t required.
- Found com.android.build.gradle.internal.dependency.VariantAttr ''VariantAttr{name=prodDebug}'' but wasn''t required.
- Required myflavor ''ProductFlavorAttr{name=prod}'' but no value provided.
- Found myflavor ''ProductFlavorAttr{name=prod}'' but wasn''t required.
- Required org.gradle.api.attributes.Usage ''for compile'' and found compatible value ''for compile''.
- Configuration ''prodReleaseApiElements'':
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but no value provided.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr ''AndroidTypeAttr{name=Aar}'' but wasn''t required.
- Required com.android.build.gradle.internal.dependency.BuildTypeAttr ''BuildTypeAttr{name=debug}'' but no value provided.
- Found com.android.build.gradle.internal.dependency. ''BuildTypeAttr{name=release}'' but wasn''t required.
- Found com.android.build.gradle.internal.dependency.VariantAttr ''VariantAttr{name=prodRelease}'' but wasn''t required.
- Required myflavor ''ProductFlavorAttr{name=prod}'' but no value provided.
- Found myflavor ''ProductFlavorAttr{name=prod}'' but wasn''t required.
- Required org.gradle.api.attributes.Usage ''for compile'' and found compatible value ''for compile''.
¿Cuál es la forma correcta de incluir mi: util lib sin obtener el error?
Parece un error en el proceso de construcción de Gradle, no estoy muy seguro de por qué no está funcionando. Estuve atrapado en esto por un tiempo pero pude arreglarlo cambiando
compile project('':util'')
a
compile project(path: '':util'', configuration: ''default'')
¡Hazme saber si esto funciona para ti!
Resolví esto usando Gradle 4.3 (con Android Studio 3.0)
Para usarlo con Android Studio 3.0:
- Descargue el binario aquí: https://gradle.org/releases/
- Configurar local binario gradle en Android Studio, bajo preferencias ...
- Luego, en su archivo de gradle reemplace compile ya sea con la implementación o la API dependiendo de sus requisitos.
referencias: https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
TAMBIÉN: asegúrese de que sus módulos externos (es decir, util) tengan los mismos sabores que su aplicación o obtendrá el error descrito aquí: Gradle 4.0 No se puede encontrar una configuración que coincida
Tuve un problema similar con Canary 2, pero la solución propuesta no funcionó. Aparentemente, hay una forma de usar la implementación desde una biblioteca o proyecto local:
// This is the old method and no longer works for local
// library modules:
// debugCompile project(path: '':foo'', configuration: ''debug'')
// releaseCompile project(path: '':foo'', configuration: ''release'')
// Instead, simply use the following to take advantage of
// variant-aware dependency resolution. You can learn more about
// the ''implementation'' configuration in the section about
// new dependency configurations.
implementation project('':foo'')
https://developer.android.com/studio/preview/features/new-android-plugin-migration.html .