¿Cómo aplicar las nuevas configuraciones de dependencia de Android Studio?

publicado por: Anonymous

Acabo de actualizar Android Studio y recibí varias advertencias diciendo que las siguientes configuraciones habían cambiado:

  • compile
  • provided
  • apk

Los mensajes de advertencia eran como este:

Configuration ‘compile’ is obsolete and has been replaced with
‘implementation’ and ‘api’. It will be removed at the end of 2018. For
more information see:
http://d.android.com/r/tools/update-dependency-configurations.html

Después de leer lo que dice este enlace, corregí (o eso creo) mi archivo gradle del siguiente modo:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.25.1'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}


android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "org.deiverbum.liturgiacatolica"
        minSdkVersion 21
        targetSdkVersion 26
        versionName '1.3 (beta)'
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        versionCode 1
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable true
        }
    }
    productFlavors {
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation('com.crashlytics.sdk.android:crashlytics:[email protected]') {
        transitive = true
    }
    implementation 'com.android.support:appcompat-v7:26.1.0'

    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.volley:volley:1.1.0'
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.google.firebase:firebase-database:11.8.0'
    implementation 'com.google.firebase:firebase-messaging:11.8.0'
    implementation 'com.google.firebase:firebase-core:11.8.0'
    implementation 'com.google.firebase:firebase-crash:11.8.0'
    implementation 'com.android.support:cardview-v7:26.1.0'
    implementation 'com.google.android:flexbox:0.2.5'
    implementation 'com.google.android:flexbox:0.3.0-alpha1'
    implementation 'com.google.firebase:firebase-invites:11.8.0'
    testImplementation 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

Luego de actualizar el archivo, la app compila sin errores y casi todas las advertencias desaparecieron, menos una:

WARNING: Configuration ‘compile’ is obsolete and has been replaced
with ‘implementation’ and ‘api’.

La advertencia me envía hacia el archivo build.gradle de la carpeta app (el que he compartido más arriba). Como pueden ver, he cambiado todos los compile por implementation. Actualmente, la palabra compile aparece solamente aquí: compileSdkVersion 26 … he intentando a cambiarlo por implementationSdkVersion 26 y por apiSdkVersion 26. En ambos casos da error.

Como ya dije, la app funciona, pero tengo siempre esa molesta advertencia y quisiera saber lo que habría que hacer para quitarla.

solución

Encontré la solución a mi problema, haciendo lo indicado en esta respuesta.

Pongo aquí lo que he hecho, por si le puede servir a alguien en un futuro:

Se trataba de cambiar lo siguiente en el apartado dependencies del archivo build.gradle del proyecto, (el general), no el de la app:

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

por

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

Con esto la advertencia ha desparecido.

La cuestión es cambiar la versión de google-services de la 3.1.1 (u otra inferior que puedas tener), a la versión 3.2.0 (u otra superior, cuando éstas existan en un futuro).

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *