android - textil - Gradle: más de una variante de proyecto: myLib coincide con los atributos del consumidor
ejemplos de atributos de un producto o servicio (5)
Una biblioteca que escribí
myLib
usa
RemoteMessage
de
Firebase
, la aplicación en sí también usa
Firebase
.
Utilizando gradle 4.7. También frente a esto en 4.4.1.
¿Como arreglarlo?
proyecto.gradle
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath ''com.android.tools.build:gradle:3.1.2''
classpath ''com.google.gms:google-services:3.3.0''
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
mavenLocal()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app.gradle
apply plugin: ''com.android.application''
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.test.app"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
dexOptions {
preDexLibraries = false
jumboMode = false
javaMaxHeapSize "2048M"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
productFlavors {
}
}
dependencies {
implementation fileTree(dir: ''libs'', include: [''*.jar''])
implementation ''com.android.support:appcompat-v7:27.1.1''
implementation ''com.google.android.gms:play-services-gcm:12.0.1''
implementation ''com.google.android.gms:play-services:12.0.1''
implementation ''com.google.firebase:firebase-core:12.0.1''
implementation ''com.google.firebase:firebase-messaging:12.0.1''
implementation ''com.google.firebase:firebase-crash:12.0.1''
implementation project(":myLib")
}
apply plugin: ''com.google.gms.google-services''
myLib.gradle
apply plugin: ''com.android.library''
android {
compileSdkVersion 27
defaultConfig {
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
}
dependencies {
implementation fileTree(dir: ''libs'', include: [''*.jar''])
implementation ''com.android.support:appcompat-v7:27.1.1''
implementation group: ''com.google.code.gson'', name: ''gson'', version: ''2.8.2''
implementation ''com.j256.ormlite:ormlite-core:5.0''
implementation ''com.j256.ormlite:ormlite-android:5.0''
implementation ''com.google.firebase:firebase-messaging:12.0.1''
}
Salida de error de
testApp/myLib> gradle clean assembleDebug
y
testApp/app> gradle clean assembleDebug
Más de una variante de proyecto: myLib coincide con los atributos del consumidor:
- Configuración '': myLib: debugApiElements'' variante android-aidl:
- Se encontró artifactType ''android-aidl'' pero no fue necesario.
- Se requiere com.android.build.api.attributes.BuildTypeAttr ''debug'' y se encontró el valor compatible ''debug''.
- Se encontró com.android.build.api.attributes.VariantAttr ''debug'' pero no fue necesario.
- Se requiere com.android.build.gradle.internal.dependency.AndroidTypeAttr ''Aar'' y se encontró el valor compatible ''Aar''.
- Se requiere org.gradle.usage ''java-api'' y se encontró el valor compatible ''java-api''.
- Configuración '': myLib: debugApiElements'' variante android-classes:
- Se han encontrado "clases de android" de tipo de artefacto pero no fueron necesarias.
- Se requiere com.android.build.api.attributes.BuildTypeAttr ''debug'' y se encontró el valor compatible ''debug''.
- Se encontró com.android.build.api.attributes.VariantAttr ''debug'' pero no fue necesario.
- Se requiere com.android.build.gradle.internal.dependency.AndroidTypeAttr ''Aar'' y se encontró el valor compatible ''Aar''.
- Se requiere org.gradle.usage ''java-api'' y se encontró el valor compatible ''java-api''.
- Configuración '': myLib: debugApiElements'' variante android-manifest:
- Se encontró artifactType ''android-manifest'' pero no fue necesario.
- Se requiere com.android.build.api.attributes.BuildTypeAttr ''debug'' y se encontró el valor compatible ''debug''.
- Se encontró com.android.build.api.attributes.VariantAttr ''debug'' pero no fue necesario.
- Se requiere com.android.build.gradle.internal.dependency.AndroidTypeAttr ''Aar'' y se encontró el valor compatible ''Aar''.
- Se requiere org.gradle.usage ''java-api'' y se encontró el valor compatible ''java-api''.
- Configuración '': myLib: debugApiElements'' variante android-renderscript:
- Se encontró artifactType ''android-renderscript'' pero no fue necesario.
- Se requiere com.android.build.api.attributes.BuildTypeAttr ''debug'' y se encontró el valor compatible ''debug''.
- Se encontró com.android.build.api.attributes.VariantAttr ''debug'' pero no fue necesario.
- Se requiere com.android.build.gradle.internal.dependency.AndroidTypeAttr ''Aar'' y se encontró el valor compatible ''Aar''.
- Se requiere org.gradle.usage ''java-api'' y se encontró el valor compatible ''java-api''.
- Configuración '': myLib: debugApiElements'' variant jar:
- Se encontró artifactType ''jar'' pero no fue necesario.
- Se requiere com.android.build.api.attributes.BuildTypeAttr ''debug'' y se encontró el valor compatible ''debug''.
- Se encontró com.android.build.api.attributes.VariantAttr ''debug'' pero no fue necesario.
- Se requiere com.android.build.gradle.internal.dependency.AndroidTypeAttr ''Aar'' y se encontró el valor compatible ''Aar''.
- Se requiere org.gradle.usage ''java-api'' y se encontró el valor compatible ''java-api''.
A continuación los pasos trabajaron para mí ---
- Ve al archivo android / build.gradle.
-
Búsqueda del método
jcentre()
. -
Cambia todos los métodos
jcenter()
a la parte inferior dentro de su bloque.
Ante un problema similar al actualizar a 3.3.1
Se corrigió bajando a 3.2.1.
Podemos usar la versión de base de fuego> = 15 con 3.2.1
El complemento gradle de
google-services
diseñado para funcionar con Google Play Services y Firebase
15+
, pero lo está utilizando con la versión
12.0.1
.
La solución es:
-
Actualice sus dependencias de Play Services y Firebase a la versión
15+
(tenga en cuenta que ahora tienen diferentes versiones) -
Cancele la actualización de los
google-services
a3.3.0
hasta que actualice a la versión15+
, es decir, disminuya la versión del complemento de Gradle a la versión3.2.1
.
EDIT 1
: hay
un problema conocido sobre el uso de
google-services
3.3
en aplicaciones multimodular
.
Eso significa que bajar a
google-services
a
3.2.1
puede ser su única opción hasta que se lance una nueva versión que corrija el error.
EDIT 2
: ¡El error mencionado anteriormente se ha corregido en la versión
4.0.1
del complemento gradle de
google-services
!
(y la versión
4.0.2
también corrige un NPE que ocurrió en algunos casos)
Por cierto, debes moverte a FCM. GCM dejará de funcionar en un futuro no muy lejano.
Me enfrenté a un problema similar en los últimos días con.
implementation ''com.google.android.gms:play-services-auth:15.0.0''
implementation ''com.google.firebase:firebase-messaging:15.0.0''
La solución era rebajar a
implementation ''com.google.android.gms:play-services-auth:12.0.1''
implementation ''com.google.firebase:firebase-messaging:12.0.1''
o considere abandonar Google Cloud Services y actualizarse completamente a FCM
Ten en cuenta que tienen diferentes números de versión, puedes consultarlos here
Recibí este error cuando uso google-services: 3.3.0.
Cambie de categoría a
classpath ''com.google.gms:google-services:3.2.1''
en su proyecto .gradle.
Debería resolver el problema.
Actualización: Probablemente no debería ocurrir en las versiones actuales.