API 'variant.getJavaCompile()' is obsolete

  • A+
Category:Languages

I'm new to Kotlin development and just after I added Kotlin to my project there's a problem with something obsoleted. I saw something like this before when we had to change compile to implementation, but I really don't understand what is this about.

the warning I get:

API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'. It will be removed at the end of 2019. 

build.gradle:

apply plugin: 'com.android.application' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android'  android {     compileSdkVersion 28     defaultConfig {         applicationId "com.example.sinamn75.androidtest"         minSdkVersion 21         targetSdkVersion 28         versionCode 1         versionName "1.0"         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"     }     buildTypes {         release {             minifyEnabled false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         }     }     compileOptions {         targetCompatibility 1.8         sourceCompatibility 1.8     } } repositories {     mavenCentral() }  dependencies {     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"     implementation fileTree(dir: 'libs', include: ['*.jar'])     // Support     implementation 'com.android.support:appcompat-v7:28.0.0-rc02'     implementation 'com.android.support.constraint:constraint-layout:1.1.3'     implementation 'com.android.support:design:28.0.0-rc02'     implementation 'com.android.support:recyclerview-v7:28.0.0-rc02'     implementation 'com.android.support:cardview-v7:28.0.0-rc02'     implementation 'com.android.support:support-v4:28.0.0-rc02'     implementation 'com.android.support:support-core-utils:28.0.0-rc02'     implementation 'com.android.support:preference-v14:28.0.0-rc02'     implementation 'com.android.support:exifinterface:28.0.0-rc02'     // GooglePlay     implementation 'com.google.android.gms:play-services-maps:15.0.1'     implementation 'com.google.android.gms:play-services-location:15.0.1'     implementation 'com.google.android.gms:play-services-plus:15.0.1'     implementation 'com.google.android.gms:play-services-places:15.0.1'     implementation 'com.google.android.gms:play-services-vision:15.0.2'     //AndPermission     implementation 'com.yanzhenjie:permission:2.0.0-rc6'     // AHNavigation     implementation 'com.aurelhubert:ahbottomnavigation:2.1.0'     // Lottie     implementation 'com.airbnb.android:lottie:2.2.5'     // SwitchButton     implementation 'lib.kingja.switchbutton:switchbutton:1.1.7'     // RoundedImageView     implementation 'com.makeramen:roundedimageview:2.3.0'     // Picasso     implementation 'com.squareup.picasso:picasso:2.71828'     // MaterialDialog     implementation 'com.afollestad.material-dialogs:core:0.9.6.0'     // Retrofit     implementation 'com.squareup.retrofit2:retrofit:2.4.0'     implementation 'com.squareup.retrofit2:converter-gson:2.3.0' } 

build.gradle:

buildscript {     ext.kotlin_version = '1.2.70'      repositories {         google()         jcenter()     }     dependencies {         classpath 'com.android.tools.build:gradle:3.3.0-alpha11'         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"     } } apply plugin: 'kotlin'  allprojects {     repositories {         google()         jcenter()         maven { url "https://jitpack.io" }     } }  task customClean(type: Delete) {     delete rootProject.buildDir } clean.dependsOn customClean repositories {     mavenCentral() } dependencies {     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } compileKotlin {     kotlinOptions {         jvmTarget = "1.8"     } } compileTestKotlin {     kotlinOptions {         jvmTarget = "1.8"     } } 

 


Update: It seems like this is a bug in kotlin plugins which mentioned in here

However, using new release of kotlin plugin (When kotlin started using the new APIs) might get rid of the error as stated in here:

https://github.com/JetBrains/kotlin/pull/1884/commits/1a17cb54a775ab3e55db66109cb12b7d54fbba6c

And: https://github.com/JetBrains/kotlin/pull/1884

The commit was actually for the fix of this issue:

This commit does not change anything functionally, it is only to avoid the warning message, as reporter in https://issuetracker.google.com/116198439


After a deep search into codes, seems like getJavaCompile() is obsolete in your current gradle (alpha11 version). However, you were using alpha version of gradle which I don't really recommend that.

Instead, try using the stable versions like:

classpath 'com.android.tools.build:gradle:3.1.4' 

And then warning should be gone I hope.

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: