android configurar - Sigue recibiendo advertencias:la configuración 'compilar' está obsoleta y ha sido reemplazada por 'implementación'




gradle studio (16)

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

He reemplazado cada aparición de compile por implementation en el build.gradle mi proyecto, pero todavía recibo esta advertencia:

Intenté buscar "compilar" en todo el proyecto pero no se encontró ninguna coincidencia. Entonces, ¿cuál podría ser la causa?


En mi caso, era una antigua dependencia que usaba compilar para las dependencias transitivas: com.jakewharton.hugo

Después de sacarlo de mi gradle lo compilé.


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

  1. build.gradle archivos build.gradle de todos los proyectos y módulos. O simplemente busque la palabra clave de búsqueda 'compilar' para encontrar la causa de esta advertencia.
  2. Si el método anterior no puede resolver esta advertencia, use el comando CLI, ./gradlew assembleDebug -d > gradle.log
    imprima la información de depuración detallada en un archivo llamado gradle.log o en cualquier otro lugar, ya que la información es demasiado. Luego busque la palabra "ADVERTENCIA" para encontrar la posición en gradle.log , por lo general puede encontrar qué dependencia o complemento causa la advertencia.


Abre tu archivo build.gradle ubicado aquí:

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

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 (derecha) de importar las dependencias para la versión gradle 3:

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

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'

    }
}

No hay necesidad de quitar la línea. Como escribió Jkrevis, actualice com.google.gms: google-services a 3.2.0 y se detienen las advertencias.


Ve a tu archivo build.gradle en el nivel del proyecto, encontrarás 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
}

He actualizado com.google.gms:google-services de 3.1.1 a 3.2.0 y 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'
    }
}


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, la forma más fácil de solucionar ese problema y esperar hasta que lo solucionen para indicar qué complementos están causando el problema.


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

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

Eliminando esto se resolvió el problema.


Simplemente actualizar la versión de google-service no me funcionó.

  • Primero asegúrese de que todas las dependencias de compile se reemplacen con la implementation .
  • Actualiza todas las dependencias en tu proyecto. Porque si una de tus dependencias tiene compile , tu proyecto mostrará este error. Así que actualiza la versión de todas las dependencias.

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

Aquí está el guión de trabajo de 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'
  }
}

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

Reemplace compilar 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


La breve diferencia en el término laico es:

  • Si está trabajando en una interfaz o módulo que brinda soporte a otros módulos al exponer a los miembros de la dependencia establecida, debe usar 'api'.
  • Si está creando una aplicación o módulo que va a implementar o usar la dependencia declarada internamente, use 'implementación'.
  • 'compile' funcionó igual que 'api', sin embargo, si solo está implementando o utilizando cualquier biblioteca, la 'implementación' funcionará mejor y le ahorrará recursos.

Lee la respuesta de @aldok para ver un ejemplo completo.





android gradle build