Error :"Configuration 'compile' is obsolete and has been replaced with 'implementation'.", even though no 'compile' present in gradle
Solution 1
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://stackoverflow.com/a/49059867/4782538. Thanks @Niklas for answer.
Solution 2
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'
Solution 3
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.
Solution 4
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.
Solution 5
Update to classpath version
classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'com.google.gms:google-services:3.2.0'
Related videos on Youtube
Hoornet
I am a self-taught android developer currently learning and developing apps for Android in Kotlin and Flutter.
Updated on June 04, 2022Comments
-
Hoornet about 2 years
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
-
Eselfar over 6 yearsProbably one of the libraries you're using still use 'compile' as I don't see anything wrong in your code
-
Peter Keefe over 6 yearsAnother SO post mentioned that
apply plugin: 'com.google.gms.google-services'
is the issue, so it's nothing you're doing wrong
-
-
Hoornet about 6 yearswhere do you see 'compile' in my gradle file?