Todavía recibo advertencia: la configuración 'compilar' está obsoleta y ha sido reemplazada por 'implementación'

332

He substituido cada ocurrencia de compilepor implementationen mis proyectos build.gradle, pero todavía estoy recibiendo esta advertencia:

ingrese la descripción de la imagen aquí

Traté de buscar "compilar" en todo el proyecto, pero no se encontraron coincidencias. Entonces, ¿cuál podría ser la causa?

Robar
fuente
¿Estás usando una biblioteca local que todavía usa 'compilar'?
Devsil
@Devsil posiblemente ... pero ¿cómo puedo averiguar cuál? Probé un Find in Path en todo el proyecto pero no pude encontrar ninguna ocurrencia de compile...
Rob
2
Si está utilizando una biblioteca local, verá su archivo gradle.build ubicado en el visor de proyectos en el lado derecho de su ventana de Android Studio. En ese archivo build.gradle puede contener una "compilación" en lugar de la implementación. Si algún archivo build.gradle que ve allí no lo contiene. Puede ser una biblioteca que esté utilizando que no sea local, por lo que no le dará acceso para cambiar eso. Por lo tanto, esta advertencia puede ignorarse por ahora.
Devsil
1
Gradle debe dar el número de línea donde está ocurriendo el problema
Yetti99
pruébelo: stackoverflow.com/questions/48623244/… y para Failed to resolve: android.arch.persistence.room:runtime:1.1.1 Open File Show in Project Structure dialogintentar cambiar la versión a1.0.0
Saeid

Respuestas:

496

He actualizado com.google.gms:google-servicesdesde 3.1.1hasta 3.2.0y la advertencia dejó de aparecer.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'com.google.gms:google-services:3.2.0'
    }
}
Jkrevis
fuente
1
La configuración 'compilar' está obsoleta y ha sido reemplazada por 'implementación'. Se eliminará a fines de 2018 Para que quede claro, no estoy usando ninguna dependencia del servicio de Google {classpath 'com.android.tools.build:gradle:3.1.0'}
Amit_android
Obtengo "No se pudo encontrar com.google.gms: google-services: 3.2.0". cuando intento esto Actualización: cambiarlo manualmente activó la advertencia de pelusa cuando lo cambié a 3.1.1, luego Alt + Enter para aplicar la corrección lo cambió automáticamente a com.google.gms: google-services: 3.2.0 sin errores en la sincronización. No estoy seguro de cuál fue la diferencia, pero es frustrante.
jwehrle
Muy bien, creo que entiendo la diferencia. Había cambiado el proyecto y el módulo build.gradle gms classpath a la versión 3.2.0. Es el cambio de módulo que causó el problema. Cambie solo la versión de classpath del proyecto build.gradle gms.
jwehrle
¡También me faltaba el repositorio jcenter ()! ¡El proyecto era muy antiguo y no tenía ese repositorio incluido!
Yani2000
¿Quiere decir que debería agregar esa línea manualmente al archivo?
hellogoodnight
125

Tengo una misma advertencia causada a com.google.gms: google-services.

La solución es actualizar classpath com.google.gms: google-services a classpath 'com.google.gms: google-services: 3.2.0' en el archivo en el proyecto build.gradle:

ingrese la descripción de la imagen aquí

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

En Android Studio verion 3.1, la palabra complie de dependencias se reemplaza por implementación

dependencias con Advertencia en android studio 3.1

dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            compile 'com.android.support:appcompat-v7:27.1.0'
            compile 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    }

dependencias OK en Android Studio 3.1

    dependencies {
            implementation fileTree(dir: 'libs', include: ['*.jar'])
            implementation 'com.android.support:appcompat-v7:27.1.0'
            implementation 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    }

Gradel generado por Android Studio 3.1 para nuevo proyecto.

Gradel generado por Android Studio 3.1 para nuevo proyecto.

Visite https://docs.gradle.org/current/userguide/dependency_management_for_java_projects.html

Para más detalles https://docs.gradle.org/current/userguide/declaring_dependencies.html

Didier
fuente
Tenga en cuenta que "testCompile" cambia a "testImplementation".
AJW
la mayoría de las respuestas, y la más popular, así, están centrando en com.google.gms: google-services pero es todo acerca de cómo actualizar el estilo de nomenclatura de edad en ambos archivos Gradle
kommradHomer
32

He actualizado com.google.gms: google-services de 3.2.0 a 3.2.1 y la advertencia dejó de aparecer.

 buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'

    }
}
Prateek218
fuente
solo necesita cambiar la versión como si tuviera este 'com.google.gms: google-services: 3.2.0' que necesita hacer, solo reemplace 3.2.0 con 3.2.1.
Prateek218
Gracias, había actualizado la clase incorrecta, es por eso que recibí el error.
Jhorra
2
Tengo la versión classpath 'com.google.gms:google-services:4.1.0'no más actualizada pero sí, es mayor que 3.2.0. ¡Aún no hay resolución!
sud007
@ sud007 ¿puede explicar un poco qué problema está enfrentando o publicar su build.gradle (nivel de proyecto)
Prateek218
22

El uso de la última versión actual de los servicios de google gms lo resolvió por mí.

En el nivel de proyecto build.gradle:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}
Hovanes Mosoyan
fuente
18

Abra su archivo build.gradle ubicado aquí:

ingrese la descripción de la imagen aquí

Esta es la antigua forma de escribir las bibliotecas de dependencias (para gradle versión 2 y siguientes):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile files('libs/volley.jar')
    compile 'com.android.support:support-v4:21.+'
}

Esta es la nueva forma (correcta) de importar las dependencias para la versión 3 de gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation files('libs/volley.jar')
    implementation 'com.android.support:support-v4:21.+'
}
Gene
fuente
1
¡Gracias amigo! Esta parece ser la respuesta más actualizada aquí a partir de enero de 2019
NaturalBornCamper
Esta respuesta es útil para aquellos que enfrentan este problema por primera vez. Aunque, OP tiene una pregunta diferente, que dice que incluso después de esos cambios, se muestra un mensaje de error.
sud007
13

Respuesta de google: https://issuetracker.google.com/issues/74048134

Habría alguna dependencia aún usando compilación, verifique cuidadosamente las dependencias de su aplicación y las dependencias transitivas.

quangkid
fuente
1
Eliminé TODAS las dependencias en TODOS los build.gradles para mi proyecto y todavía recibo el error
behelit
3
EDITAR: Fue causado por el reino, usando una versión anterior
Behelit
7

https://issuetracker.google.com/issues/72479188 indica que los complementos a veces pueden introducir dependencias de "compilación" y eso es lo que activa la advertencia. Probablemente sea más fácil destacar ese problema y esperar hasta que lo arreglen para señalar qué complementos están causando el problema.

Eric
fuente
6

No es necesario eliminar la línea. Como escribió Jkrevis, actualice com.google.gms: google-services a 3.2.0 y detendrá las advertencias.

Tom
fuente
1
¿Reemplazó cada aparición de 'compilar' por 'implementación' en el build.gradle (Módulo: Aplicación) de su proyecto y actualizó com.google.gms: google-services en build.gradle (Proyecto) a 3.2.0?
Tom
6

Me encuentro con este problema sin usar com.google.gms:google-services. La solución para resolver este tipo de problema es la siguiente:

  1. verifique los build.gradlearchivos de todos los proyectos y módulos. O simplemente la palabra clave de búsqueda global 'compilar' para encontrar dónde causa esta advertencia.
  2. Si el método anterior no puede resolver esta advertencia, utilice el comando CLI, ./gradlew assembleDebug -d > gradle.log
    imprima información de depuración detallada en un archivo llamado gradle.logo en cualquier otro, ya que la información es demasiado. Luego busque la palabra "ADVERTENCIA" para encontrar la posición gradle.log, generalmente puede encontrar en qué dependencia o complemento causa la advertencia.
zhangliang
fuente
2
Creo que esta es la solución general. El problema podría ser causado por una o varias de sus dependencias
Rasmusob
5

En mi caso, es causado por la biblioteca Realm, después de actualizarlo a la última versión (5.1.0 hasta ahora) de Realm, ¡el problema se resolvió!

Aquí está el script de trabajo gradle:

buildscript {
repositories {
    jcenter()
    google()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.2'
    classpath "io.realm:realm-gradle-plugin:5.1.0"
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:3.2.1'
  }
}
conocido
fuente
3

Simplemente actualizar la versión del servicio de google no funcionó para mí.

  • Primero asegúrese de compilereemplazar todas sus dependencias implementation.
  • Actualice todas las dependencias en su proyecto. Porque si tiene una de sus dependencias compile, su proyecto mostrará este error. Así que actualice la versión de todas las dependencias.
Khemraj
fuente
2

vaya a su archivo build.gradle en el nivel del proyecto, encontrará las siguientes líneas resaltadas

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.4'  //place your cursor over here 
    //and hit alt+enter and it will show you the appropriate version to select


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'com.google.gms:google-services:4.0.2' //the same as previously
}
RABI Hamza
fuente
2

En mi caso, se trataba de una antigua dependencia que estaba utilizando la compilación para las dependencias transitivas: com.jakewharton.hugo

Después de sacarlo de mi gradle se compiló.

PerrierCitror
fuente
1

La solución para resolver este problema fue para mí que usé una versión anterior de Gradle, que se puede encontrar aquí :

Utilicé la versión gradle-3.0-rc-1-src, pero otras también pueden funcionar, aunque probablemente no debería ser más nueva que la versión 3.0.

Primero extraiga el archivo zip a cualquier lugar que desee.

Luego vaya a Archivo -> Configuración -> Compilación, Ejecución, Implementación -> Gradle y cambie la configuración a Usar distribución local de gradle. Después de eso, asegúrese de que el campo de inicio de Gradle apunte al directorio .gradle en el directorio que acaba de descomprimir.

Reconstruya el proyecto y todo debería estar bien.

tpn
fuente
0

He intentado cambiar los servicios de gms de google a lo último com.google.gms:google-services:3.2.1en Android Studio 3.0.1 pero la advertencia aún persiste.

Según lo recomendado por el compilador, he cambiado todas las compiledependencias a implementationy testCompilea testImplementationcomo esto ..

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:mediarouter-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.google.firebase:firebase-ads:12.0.1'
implementation 'com.google.firebase:firebase-crash: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-perf:12.0.1'
implementation 'com.google.firebase:firebase-appindexing:12.0.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

¡Y finalmente se elimina la advertencia!

Haileapp
fuente
0

Puedes hacer estas dos opciones:

  1. Agregue classpath 'com.google.gms: google-services: 3.2.0' en su proyecto: dependencias build.gradle y
  2. Reemplace su módulo: build.gradle en dependencia de cumplir con la implementación y no recibirá ningún mensaje de advertencia.
Jasbin Karki
fuente
0

Solo agregue build.gradledesdebuild script

classpath 'com.google.gms:google-services:3.2.0'

y todas las dependencias "compile"reemplazan a "implementation".

eso funcionó de mi parte.

Omae wa mou shindairu
fuente
Tenga en cuenta que si está usando classpathdebe usarlo dentro de un buildscriptbloque; Además, no se puede usar implementationdentro de un buildscriptbloque.
ChumiestBucket
0

La versión actual es 4.2.0 :

buildscript {

repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.4.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:4.2.0'
}

}

Frank Eno
fuente
0

Para mí, cambiar la compilación a la implementación lo arregló

antes de

compile 'androidx.recyclerview:recyclerview:1.0.0'
compile 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

Después

implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
implementation 'com.squareup.retrofit2:retrofit:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
Jagadesha NH
fuente
-2

Espero que se vea afectado con build.gradle (aplicación) Si lo hace, siga este paso

Reemplace la compilación con androidTestImplementation en build.gradle

androidTestImplementation 'com.android.support:appcompat-v7:27.1.1'
androidTestImplementation 'com.android.support:design:27.1.1'

tan sencillo ! espero que esto resuelva

Thiyagu
fuente
-3

En mi caso, el problema era el complemento gradle de servicios de Google con la siguiente línea en el archivo gradle:

aplique el complemento: 'com.google.gms.google-services'

Eliminar esto resolvió el problema

Ujjwal Singh
fuente
-7

vaya a usted build.gradle (nivel de aplicación)

aplicación del módulo build.gradle

y reemplace la palabra "compilar" por "implementación"

funcionará al 100%

Ayoub
fuente
66
Esta respuesta no es útil. El OP ya declaró que esto se hizo, por lo que no puede ayudar.
NightOwl888
1
Tuve el mismo problema, no pude generar mi apk de la aplicación porque esa respuesta resolvió mi problema
Ayoub
Esta no es la misma situación, OP ya dijo que él ha hecho esto (también estoy en el mismo barco) se debe a las dependencias
ElliotM
OP dijo "He reemplazado cada aparición de compilación por implementación".
mapo