ChatGPT解决这个技术问题 Extra ChatGPT

Still getting warning : Configuration 'compile' is obsolete and has been replaced with 'implementation'

I have replaced every occurrence of compile by implementation in my project's build.gradle, but I'm still getting this warning :

https://i.stack.imgur.com/rXimx.png

I tried to look for "compile " in the whole project but no match was found. So what could be the cause?

Are you using a local library that is using 'compile' still?
@Devsil possibly... but how can I find out which one? I tried a Find in Path in the whole project but couldn't find any occurrence of compile..
If you are using a local library you will see its gradle.build file located in the project viewer on the right side of your Android Studio window. In that build.gradle file it may contain a "compile" as opposed to implementation. If any build.gradle file you see there doesn't contain that. It may be a library you are using that isn't local thus not giving you access to change that. So this warning can just be ignore for now.
Gradle should give the line number where the problem is occuring
try it : stackoverflow.com/questions/48623244/… and for Failed to resolve: android.arch.persistence.room:runtime:1.1.1 Open File Show in Project Structure dialog try to change version to 1.0.0

R
Rohit Sharma

I've updated com.google.gms:google-services from 3.1.1 to 3.2.0 and the warning stopped appearing.

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

Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be removed at the end of 2018 To be clear am not using any google service dependencies { classpath 'com.android.tools.build:gradle:3.1.0' }
I get "Could not find com.google.gms:google-services:3.2.0." when I try this. Update: changing it manually triggered lint warning when I changed it back to 3.1.1, then Alt+Enter to apply fix automagically changed it to com.google.gms:google-services:3.2.0 with no errors on sync. I'm not sure what the difference was but it's frustrating.
Alright, I believe I understand the difference. I had changed the Project and Module build.gradle gms classpath to version 3.2.0. It's the Module change that caused the problem. Change only the Project build.gradle gms classpath version.
I was also missing jcenter() repo! The project was very old and did not have that repo included!
Do you mean that I should just add that line manually to the file?
A
Ali Khaki

I have one same Warning caused to com.google.gms:google-services.

The solution is to upgrade classpath com.google.gms:google-services to classpath 'com.google.gms:google-services:3.2.0' in file in build.gradle Project:

https://i.stack.imgur.com/N9S5z.png

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
}

In Android Studio verion 3.1 dependencies complie word is replaced to implementation

dependencies with Warning in 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'
    }

dependencies OK in 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 generate by Android Studio 3.1 for new project.

https://i.stack.imgur.com/k98p5.png

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

For details https://docs.gradle.org/current/userguide/declaring_dependencies.html


Note that "testCompile" changes to "testImplementation".
most of the answers , and the most popular one as well , are all focusing on com.google.gms:google-services but it's all about updating the old naming style in both gradle files
O
Om Infowave Developers

I've updated com.google.gms:google-services from 3.2.0 to 3.2.1 and the warning stopped appearing.

 buildscript {

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

    }
}

you just need to change the version like I have this 'com.google.gms:google-services:3.2.0' you need to do just replace 3.2.0 with 3.2.1.
Thanks, I had updated the wrong class, that's why I got the error.
I have the version classpath 'com.google.gms:google-services:4.1.0' not most updated but yeah, it is greater than 3.2.0. No resolution still!
@sud007 can you explain a bit what issue are you facing or post your build.gradle(Project level)
H
Hovanes Mosoyan

Using the currently latest version of the google gms services resolved it for me.

In the project level build.gradle:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}

G
Gene

Open up your build.gradle file located here:

https://i.stack.imgur.com/Ktni5.png

This is the old way of writing the dependency libraries (for gradle version 2 and below):

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

This is the new (right) way of importing the dependencies for gradle version 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.+'
}

Thanks friend! This seems like the most up-to-date answer here as of January 2019
This answer is helpful to those who are facing this issue for the first time. Although, OP has a different question, which says that even after those changes, error message is displayed.
q
quangkid

Reply by google : https://issuetracker.google.com/issues/74048134

There would be some dependency still using compile, check your application dependencies and transitive dependencies carefully.


I removed ALL dependencies in ALL build.gradles for my project and still get the error
EDIT: It was caused by realm, using older version
E
Eric

https://issuetracker.google.com/issues/72479188 indicates that plugins sometimes can introduce "compile" dependencies and that's what triggers the warning. Probably just easiest to star that issue and wait until they fix it to point out which plugins are causing the issue.


T
Tom

No need to remove the line. As Jkrevis wrote, update the com.google.gms:google-services to 3.2.0 and it stops the warnings.


Did you replaced every occurrence of 'compile' by 'implementation' in your project's build.gradle(Module:App) and updated the com.google.gms:google-services in build.gradle(Project) to 3.2.0 ?
k
ken

In my case,it is cause by Realm library,after I update it to latest version(5.1.0 so far) of Realm,the problem solved!

Here is the working gradle script:

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

The "io.realm:realm-gradle-plugin:1.1.0" was causing the issue for me. I updated to latest version and the problem was gone.
z
zhangliang

I encounter this problem without using com.google.gms:google-services. The solution solving this kind problem as below:

check build.gradle files of all projects and modules. Or just global search key word 'compile' to find where cause this warning. if above method cannot solve this warning, then use CLI Command, ./gradlew assembleDebug -d > gradle.log print detail debug information to a file named gradle.log or any else, as the information is too much. Then search word "WARNING" to find the position in gradle.log, usually you can find what dependence or plugin cause the warning.


I think this is the general solution. The problem could be caused by any one, or several, of your dependencies
K
Khemraj Sharma

Just updating google-service version did not work for me.

First make sure all your dependencies compile are replaced with implementation.

Update all dependencies in your project. Because if one of your dependency is having compile then your project will show this error. So update all dependencies version.


H
Haileapp

I have tried changing the google gms services to the latest com.google.gms:google-services:3.2.1 in Android Studio 3.0.1 but the warning still persists.

As recommended by the compiler,I changed all compile dependencies to implementation and testCompile to testImplementation like this..

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

And finally the warning is removed!


R
RABI Hamza

go to your build.gradle file in project level you will find the following lines highlighted

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
}

P
PerrierCitror

In my case it was an old dependency that was using compile for the transitive dependencies : com.jakewharton.hugo

After removing it from my gradle it compiled.


t
tpn

The workaround to solve this problem was for me that I used an older version of Gradle, which can be found here:

I used the gradle-3.0-rc-1-src version, but others may work too, although probably it should not be newer than the 3.0-version.

First extract the zip file to anywhere you like.

Then go to File -> Settings -> Build, Execution, Deployment -> Gradle and change the setting to Use local gradle distribution. After that make sure that the Gradle Home-field is pointing to the .gradle directory in the directory you just unzipped to.

Rebuild the project and everything should be ok.


F
Frank Eno

The current version is 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'
}

}


M
Muhammad Muzamil

Google updated it's services recently in September 2021. Gave update and I faced same issue then I update the build.gradle file in android studio

Old version with issue

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

Updated code in build.gradle

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

U
Unheilig

You can do this two options:

Add classpath 'com.google.gms:google-services:3.2.0' in ur project: build.gradle dependencies and Replace your module: build.gradle in dependency from complile with implementation and you wont get any warning messages.


O
Omae wa mou shindairu

Just add from build.gradle from build script

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

and all of the dependencies "compile" replace to "implementation".

that worked from me.


Note that if you're using classpath you must use it inside a buildscript block; moreover, one cannot use implementation inside a buildscript block.
J
Jagadesha NH

For me changing compile to implementation fixed it

Before

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'

After

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'

D
Dr NVS

I treid all the solutions mentioned here, but no luck. I found in my build.gradle file as below:

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
    }

I just changed it as below and saved and tried build success.

dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
    }

T
Thiyagu

Hope that you're affected with build.gradle(app) If do so , follow this step

Replace compile with androidTestImplementation in build.gradle

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

so simple ! hope this will solve


U
Ujjwal Singh

In my case the issue was the Google services gradle plugin with the following line in the gradle file:

apply plugin: 'com.google.gms.google-services'

Removing this resolved the issue


A
Ayoub

go to you build.gradle (app level)

build.gradle module app

and replace the word "compile" by "implementation"

it will work 100%


This answer is not useful. The OP already stated that this was done, so it cannot possibly help.
i had the same issue, i couldn't generate my app apk bcoz of that, that answer solved my problem
This is not the same situation, OP already stated he's done this (I'm also in the same boat) it's due to dependancies
OP said "I have replaced every occurrence of compile by implementation".