Error :"Configuration 'compile' is obsolete and has been replaced with 'implementation'.", even though no 'compile' present in gradle
Asked Answered
U

6

11

I have the following gradle files and I can't find anything which would still warrant the warning "Configuration 'compile' is obsolete and has been replaced with 'implementation'."

First Module Gradle file:

   buildscript {
        repositories { maven { url 'https://maven.fabric.io/public' } }
        dependencies { classpath 'io.fabric.tools:gradle:1.24.1' }
    }
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-kapt'

def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))


android {
    compileSdkVersion 27
    defaultConfig {
        multiDexEnabled true
        applicationId "com.example.something"
        minSdkVersion 19
        targetSdkVersion 27
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        vectorDrawables.useSupportLibrary = true
    }
    dataBinding { enabled = true }

    flavorDimensions "flavors"
    productFlavors {
        flavorBeta {
            minSdkVersion 19
            applicationId 'com.example.something'
            targetSdkVersion 27
            versionCode 1000012
            versionName "beta test"
            dimension "flavors"
        }
    }
    signingConfigs {
        config {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        debug {
        }
        release {
            minifyEnabled true
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            debuggable false
        }
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')

    implementation('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
        transitive = true
    }
    // kotlin:
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation "org.jetbrains.anko:anko-common:$anko_version"
    implementation "org.jetbrains.anko:anko-commons:$anko_version"
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.21.2'

    // support libraries:    
    implementation "com.android.support:recyclerview-v7:$support_version"
    implementation "com.android.support:support-v4:$support_version"
    implementation "com.android.support:design:$support_version"
    implementation "com.android.support:appcompat-v7:$support_version"
    implementation "com.android.support:cardview-v7:$support_version"
    implementation "com.android.support:support-vector-drawable:$support_version"
    // misc:
    implementation 'com.github.d-max:spots-dialog:0.7@aar'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta4'
    implementation 'com.backendless:backendless:4.4.0'
    implementation 'io.nlopez.smartlocation:library:3.3.2'

    // Google services:
    implementation "com.google.firebase:firebase-core:$google_services_version"
    implementation "com.google.firebase:firebase-auth:$google_services_version"
    implementation 'com.firebaseui:firebase-ui-auth:3.1.3'
    implementation "com.google.android.gms:play-services-location:$google_services_version"
    implementation "com.google.android.gms:play-services-auth:$google_services_version"
}
apply plugin: 'com.google.gms.google-services'

///////////////////// AND ////////////////////

And the following is a project level Gradle file:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.21'
    ext.support_version = '27.0.2'
    ext.anko_version = '0.10.3'
    ext.android_plugin_version = '3.0.1'
    ext.google_services_version = '11.8.0'

    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0-beta1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

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

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

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

//////////////////////////

EDITED: I am adding the full log for sync and build below:

Executing tasks: [:app:generateFlavorBetaDebugSources]

Configuration on demand is an incubating feature.
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation'.
It will be removed at the end of 2018
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
app: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'com.android.databinding:compiler:3.1.0-beta3'.
:app:preBuild UP-TO-DATE
:app:preFlavorBetaDebugBuild UP-TO-DATE
:app:compileFlavorBetaDebugAidl UP-TO-DATE
:app:compileFlavorBetaDebugRenderscript UP-TO-DATE
:app:checkFlavorBetaDebugManifest UP-TO-DATE
:app:generateFlavorBetaDebugBuildConfig UP-TO-DATE
:app:prepareLintJar UP-TO-DATE
:app:mainApkListPersistenceFlavorBetaDebug UP-TO-DATE
:app:mergeFlavorBetaDebugShaders UP-TO-DATE
:app:compileFlavorBetaDebugShaders UP-TO-DATE
:app:generateFlavorBetaDebugAssets UP-TO-DATE
:app:mergeFlavorBetaDebugAssets
:app:processFlavorBetaDebugGoogleServices
Parsing json file: C:\Users\some_path\app\google-services.json
:app:createFlavorBetaDebugCompatibleScreenManifests UP-TO-DATE
:app:processFlavorBetaDebugManifest UP-TO-DATE
:app:fabricGenerateResourcesFlavorBetaDebug
:app:generateFlavorBetaDebugResValues UP-TO-DATE
:app:generateFlavorBetaDebugResources UP-TO-DATE
:app:mergeFlavorBetaDebugResources
:app:splitsDiscoveryTaskFlavorBetaDebug UP-TO-DATE
:app:processFlavorBetaDebugResources
:app:generateFlavorBetaDebugSources

BUILD SUCCESSFUL in 19s
18 actionable tasks: 5 executed, 13 up-to-date

Sync log:

registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
app: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'com.android.databinding:compiler:3.1.0-beta3'.

CONFIGURE SUCCESSFUL in 22s
Unclothe answered 5/2, 2018 at 13:3 Comment(5)
Can you pl ease add the error/warning logs? It's maybe because it's implemented in a lib that's why you can't see it in you gradleBakki
@Eselfar: I added the sync and build logUnclothe
Probably one of the libraries you're using still use 'compile' as I don't see anything wrong in your codeBakki
Another SO post mentioned that apply plugin: 'com.google.gms.google-services' is the issue, so it's nothing you're doing wrongLuis
@PeterKeefe: If I comment out that line, 2 of the warnings disappear and 2 remain still :)Unclothe
A
4

The problem lies in apply plugin: 'com.google.gms.google-services'

The Google Services plugin is adding a dependency on behalf of you. Hopefully they fix it in the future.

I copy answer from below stackoverflow link. https://mcmap.net/q/94159/-android-studio-build-gradle-warning-message-duplicate. Thanks @Niklas for answer.

Austronesian answered 27/3, 2018 at 19:34 Comment(0)
A
6

I solved by changing classpath inside build.gradle (Project: your Project name)

from 
  classpath 'com.google.gms:google-services:3.1.1' 
to
  classpath 'com.google.gms:google-services:3.2.0'
Aerobatics answered 22/4, 2018 at 19:30 Comment(1)
This link should contain the most up to date version that you need to change the version number to developers.google.com/android/guides/google-services-pluginUnionism
A
4

The problem lies in apply plugin: 'com.google.gms.google-services'

The Google Services plugin is adding a dependency on behalf of you. Hopefully they fix it in the future.

I copy answer from below stackoverflow link. https://mcmap.net/q/94159/-android-studio-build-gradle-warning-message-duplicate. Thanks @Niklas for answer.

Austronesian answered 27/3, 2018 at 19:34 Comment(0)
T
1

I think (but I'm not sure) that it's the implementation "com.google.firebase:firebase-core:$google_services_version" line, which resolves to 11.8.0. My suspicion comes from running ./gradlew app:dependencies.

The output of that gives (among other things):

compile - Compile dependencies for 'main' sources (deprecated: use 'implementation' instead).
\--- com.google.firebase:firebase-core:11.8.0
     \--- com.google.firebase:firebase-analytics:11.8.0
          +--- com.google.android.gms:play-services-basement:11.8.0
          |    +--- com.android.support:support-v4:25.2.0
          |    |    +--- com.android.support:support-compat:25.2.0
          |    |    |    \--- com.android.support:support-annotations:25.2.0
          |    |    +--- com.android.support:support-media-compat:25.2.0
          |    |    |    +--- com.android.support:support-annotations:25.2.0
          |    |    |    \--- com.android.support:support-compat:25.2.0 (*)
          |    |    +--- com.android.support:support-core-utils:25.2.0
          |    |    |    +--- com.android.support:support-annotations:25.2.0
          |    |    |    \--- com.android.support:support-compat:25.2.0 (*)
          |    |    +--- com.android.support:support-core-ui:25.2.0
          |    |    |    +--- com.android.support:support-annotations:25.2.0
          |    |    |    \--- com.android.support:support-compat:25.2.0 (*)
          |    |    \--- com.android.support:support-fragment:25.2.0
          |    |         +--- com.android.support:support-compat:25.2.0 (*)
          |    |         +--- com.android.support:support-media-compat:25.2.0 (*)
          |    |         +--- com.android.support:support-core-ui:25.2.0 (*)
          |    |         \--- com.android.support:support-core-utils:25.2.0 (*)
          |    \--- com.google.android.gms:play-services-basement-license:11.8.0
          +--- com.google.firebase:firebase-common:11.8.0
          |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
          |    +--- com.google.android.gms:play-services-tasks:11.8.0
          |    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
          |    |    \--- com.google.android.gms:play-services-tasks-license:11.8.0
          |    \--- com.google.firebase:firebase-common-license:11.8.0
          +--- com.google.firebase:firebase-analytics-impl:11.8.0
          |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
          |    +--- com.google.firebase:firebase-iid:11.8.0
          |    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
          |    |    +--- com.google.firebase:firebase-common:11.8.0 (*)
          |    |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
          |    |    \--- com.google.firebase:firebase-iid-license:11.8.0
          |    +--- com.google.firebase:firebase-common:11.8.0 (*)
          |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
          |    \--- com.google.firebase:firebase-analytics-impl-license:11.8.0
          \--- com.google.firebase:firebase-analytics-license:11.8.0

If that's the case, then we need to wait for an update to the firebase-core library.

Trudi answered 8/3, 2018 at 16:33 Comment(1)
Nope. I tried to comment out all these 3 lines one by one and I still receive the same warning: implementation "com.google.firebase:firebase-core:$google_services_version" implementation "com.google.firebase:firebase-auth:$google_services_version" implementation 'com.firebaseui:firebase-ui-auth:3.2.2'Unclothe
H
1

Update to classpath version

classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'com.google.gms:google-services:3.2.0'
Hurds answered 13/4, 2018 at 20:17 Comment(0)
D
1

I had this problem too, this is how I solved it:

go to you build.gradle (app level)

build.gradle module app

and replace the word 'compile' with 'implementation'

Dogie answered 18/4, 2018 at 12:59 Comment(1)
where do you see 'compile' in my gradle file?Unclothe
L
1

I had face same issue although i had replaced all 'compile' with 'implementation'. But finally resolved this issue by doing following changes in build.gradle(Project).I have replaced it

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

with this line

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

and after it, your gradle may give warnning again to add firebase-core than add this line in your build.gradle(app)

dependencies{
implementation 'com.google.firebase:firebase-core:16.0.3'
} 

Note: please check updated dependencies in any issue.

Larissa answered 25/7, 2018 at 15:4 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.