315 votes

Un échec s'est produit lors de l'exécution de org.jetbrains.kotlin.gradle.internal.KaptExecution

Tout d'un coup, je commence à obtenir cette erreur, et je ne suis pas obtenir idée pourquoi si quelqu'un juste me faire savoir où cette erreur est, sera assez utile. Autant que je suis capable d'obtenir est ce en raison de la nouvelle mise à jour de Android studio. Résumé détaillé de l'erreur que je reçois.

Task :app:kaptDebugKotlin
    ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1C:\Users\shubh\Downloads\MarginCalculator\app\build\generated\source\kapt\debug\com\kotlin_developer\margincalculator\DataBinderMapperImpl.java:10: error: cannot find symbol
    import com.kotlin_developer.margincalculator.databinding.FragmentCalculatorScreenBindingImpl;

    symbol:   class FragmentCalculatorScreenBindingImpl

    Task :app:kaptDebugKotlin FAILED
    location: package com.kotlin_developer.margincalculator.databinding
    FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
   > java.lang.reflect.InvocationTargetException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 17s
29 actionable tasks: 27 executed, 2 up-to-date

4voto

v.d Points 145

Dans mon cas, j'ai utilisé room et une de mes méthodes databasDao a un paramètre inutilisé et malheureusement Android studio ne me prévient pas correctement

4voto

Kairat Doshekenov Points 135

Ce problème se produit également si vous avez installé un nouveau plugin kotlin ( 1.4.20-release-Studio4.1-1 ) et ont une dague ( kapt 'com.google.dagger:dagger-compiler:2.30' ). Dans un tel cas, une solution pourrait consister à remplacer l'ancienne version de l'outil plugin: 'kotlin-android-extensions' avec liaison de vue ( https://developer.Android.com/topic/libraries/view-binding )

4voto

Nasib Points 445

J'ai eu le même problème lorsque j'ai ajouté CHAMBRE à mon application (Kotlin). J'ai eu du mal à trouver ce qui n'allait pas et j'ai fini par comprendre que j'utilisais les éléments suivants pour ajouter CHAMBRE à mon application.

    //room
    implementation 'android.arch.persistence.room:runtime:1.1.1'
    kapt "android.arch.persistence.room:compiler:1.1.1"

J'ai donc remplacé les deux lignes ci-dessus par les suivantes, ce qui m'a permis de me débarrasser de la douleur.

    def room_version = "2.2.6"
    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"

Appuyez sur la touche en haut bouton si cela vous a aidé :D

3voto

mahmood Points 113

Dans mon cas, j'utilisais des coroutines mais j'ai oublié d'ajouter le support des extensions Kotlin et des coroutines pour Room.

def version_chambre = "2.2.6 implémentation "androidx.room:room-ktx:$room_version

2voto

E-max Points 41

En réponse à la réponse de @Rene Spies ci-dessus, j'ai également eu cette erreur en travaillant avec le databinding. Il s'avère que le moteur de construction n'aime pas que l'on mette la balise @Bindable sur un champ dans le constructeur primaire d'un objet data class en Kotlin.

Ne faites donc jamais ce qui suit,

data class MyAwesomePojo(
    @Bindable
    var firstname: String,
    var lastname: String
)

Au lieu de cela, ce que vous devez faire est

data class MyCorrectAwesomePojo(
    var lastname: String
):{
    @get:Bindable
    var firstname: String
        set(value){
            field = value
        }
}

Bonus : n'oubliez pas de vérifier si les valeurs sont identiques avant de définir la valeur du champ si, comme moi, vous essayez d'utiliser une liaison bidirectionnelle pour éviter une boucle infinie de définition et d'obtention.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X