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

1voto

Evgeniy Mironov Points 589

Cela peut se produire si des caractères non anglais sont utilisés dans des expressions de liaison dans la mise en page. Par exemple :

<TextView ... android:text="@{ viewModel.letterTitle, default=` ` }" />

Vous pouvez vérifier ce cas si vous exécutez "Exécuter avec l'option --stacktrace" . Si la trace de la pile contient le message "MalformedByteSequenceException : Octet 2 non valide d'une séquence UTF-8 de 2 octets." alors peut-être

  • la mise en page contient des caractères non anglais
  • ou certains fichiers xml source ont un format incorrect

1voto

Prateek Sharma Points 51

Résolu en augmentant simplement la version de gradle à la dernière version.

Il se trouve dans le fichier gradle au niveau du projet, sous le bloc des dépendances.

classpath "com.android.tools.build:gradle:4.x.x"

1voto

Mohammed Fathi Points 103

Cela m'est arrivé lorsque j'ai essayé d'injecter un champ privé à l'intérieur d'une activité en utilisant Hilt. La solution a été de supprimer le mot clé private afin de changer

@Inject
private lateinit var appAnalytics: AppAnalytics

à

@Inject
lateinit var appAnalytics: AppAnalytics

0voto

Sergei Maleev Points 189

Dans certains cas, cela peut aider gradle.properties

kapt.include.compile.classpath=true

0voto

Joolah Points 4617

Si vous utilisez Kotlin avec Hilt

Assurez-vous que vous avez annoté votre classe de module avec

@Module
@InstallIn(SingletonComponent::class)
class AppModule {
//...
}

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