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?


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

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


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'

    }
}

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

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.+'
}

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.


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.


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.


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.

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

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.

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
}

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ó.


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.


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!


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.

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.


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

}


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'

-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


-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


-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%


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.