web-dev-qa-db-fra.com

L'API 'variant.getJavaCompile ()' est obsolète

Je suis nouveau dans le développement Kotlin et juste après avoir ajouté Kotlin à mon projet, il y a un problème avec quelque chose de obsolète. J'ai déjà vu quelque chose comme cela auparavant lorsque nous avons dû changer compile en implementation, mais je ne comprends vraiment pas de quoi il s'agit.

l'avertissement que je reçois:

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

Mise à jour: Il semble que ce soit un bogue dans les plugins kotlin qui mentionnait ici

Cependant, l’utilisation de la nouvelle version du plug-in kotlin (lorsque kotlin a commencé à utiliser les nouvelles API) pourrait supprimer l’erreur décrite dans ce qui suit:

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

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

Le commit était en fait pour résoudre ce problème:

Ce commit ne change rien fonctionnellement, c'est seulement pour éviter le message d'avertissement, en tant que journaliste dans https://issuetracker.google.com/116198439


Après une recherche approfondie dans les codes, il semble que getJavaCompile() soit obsolète dans votre version actuelle (version alpha11). Cependant, vous utilisiez la version alpha de gradle, ce que je ne recommande pas vraiment. 

Essayez plutôt d’utiliser les versions stables suivantes:

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

Et puis, l’alerte devrait disparaître j'espère.

8
ʍѳђઽ૯ท

Cet avertissement est lié aux plugins Kotlin qui utilisent encore les anciennes API (obsolètes).

Consultez le numéro ci-dessous sur le suivi des problèmes de Google:
https://issuetracker.google.com/issues/116198439

Problème en double avec quelques informations supplémentaires:
https://issuetracker.google.com/issues/116148147

Il sera corrigé lorsque le plugin Kotlin commencera à utiliser les nouvelles API. S'il vous plaît vérifier les questions ici:
https://youtrack.jetbrains.com/issue/KT-25428
https://github.com/JetBrains/kotlin/pull/1884

6
Pranav Pandey

Si utilisé pour google crashlytics

Veuillez mettre à jour vos dépendances de gradle:

implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.9'
classpath 'io.fabric.tools:gradle:1.26.1'
0
Ramananda Sarkar