Exécution avec Kotlin Version '1.4.32' Mon projet Android s'exécute et construit. Essayer de passer à Kotlin '1.5.0' et ma construction lance:
Execution failed for task ':app:kaptDefaultsDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction > java.lang.reflect.InvocationTargetException (no error message)
Je ne sais même pas par où commencer à chercher. Quelqu'un d'autre a des problèmes de mise à niveau vers Kotlin 1.5.0?
14 Réponses :
J'ai rencontré le même problème aujourd'hui. Ran la commande gradle build avec - StackTrace
et a obtenu un stackTrace utile qui a réduit le problème à la bibliothèque Moshi.
Caused by: java.lang.IllegalStateException: Could not parse metadata! This should only happen if you're using Kotlin <1.1. at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.readKotlinClassMetadata(KotlinPoetMetadata.kt:70) at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.toImmutableKmClass(KotlinPoetMetadata.kt:50) at com.squareup.moshi.kotlin.codegen.MoshiCachedClassInspector.toImmutableKmClass(MoshiCachedClassInspector.kt:22) at com.squareup.moshi.kotlin.codegen.MetadataKt.targetType(metadata.kt:109) at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.adapterGenerator(JsonClassCodegenProcessor.kt:136) at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.process(JsonClassCodegenProcessor.kt:110) at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90) at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:175) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980) ... 41 more
a dû mettre à jour Moshi à 1.12 .0
et cela a fait l'affaire.
Voici un modifice pour moshi 1.12.0
qui mentionne le correctif pour 1.5.0: https://github.com/square/moshi/blob/master/changelog.md#version- 1120
Problème lors de sa première déclaration ici: https: / /github.com/square/moshi/issues/1324
Un autre problème qui mentionne le correctif ici: https://github.com/square/moshi/issues/1337
donc je vous suggère d'exécuter la commande gradle build avec - StackTrace
et déterminez quelle bibliothèque provoque l'incompatibilité avec la bibliothèque kotlinx-metadata-jvm
nd le mettre à jour.
L'exécution avec --StackTrace a mis en évidence le package / lib qui provoquait un problème. Merci beaucoup.
Courir avec --stackTrace n'a pas aidé, il a juste montré un autre tas d'invocations internes, je n'ai toujours aucune idée d'où elle vient de
Pour moi non plus. Mais ce n'est pas si difficile à tracer, c'est l'une des bibliothèques qui utilise KAPT.
Merci! C'était moshi
pour moi également. Je cherchais le problème pendant des heures.
Ça y est. Moshi est le coupable
Merci ! J'ai fait face au même problème et cela fonctionne pour moi.
Mise à jour de mon Moshi avec 1.13.0 Correction du problème
Cela est dû à l'utilisation par Dagger de la version ancienne de kotlinx-metadata-jvm
.
Voir https://youtrack.jetbrains.com/issue/kt-45885
Mettez à jour votre poignard vers 2.34
Ouais, dans mon cas, c'était du poignard. L'exécution avec StackTrace a indiqué quelle dépendance provoquait le problème. J'aimerais pouvoir accepter les deux réponses;)
J'utilise Dagger 2.35, je reçois toujours cette erreur
@Wackaloon rétrogradent à 2,34
Je n'ai même pas de poignard dans mon projet - seulement koin - tout ce que j'obtiens la même erreur aussi
Merci pour cela. recherché depuis des heures. Cela a fonctionné pour moi.
2.36 a été libéré et cela fonctionne. Merci.
Cela a résolu mon problème, mais j'aimerais savoir comment vous avez trouvé la solution?
Vous devez vérifier lequel de vos dépendances dépend probablement des nouveaux modifications de Kotlin dans la version 1.5.0 et d'essayer de les mettre à jour. Pour moi, la chambre et le poignard causaient des problèmes, je l'ai mis à niveau vers les dernières versions et maintenant je n'ai plus de problèmes:
Et Moshi à 1.12.0 puis IDE se plaint que Kotlin 1.5.0 n'est pas compatible avec Compose (dans mon cas)
Cela m'a aidé. J'ai eu un problème après avoir mis à jour la version Kotlin vers "1.5.10" dans mon cas, j'ai mis à jour la version de la salle car j'utilise la salle dans mon projet
Si d'autres réponses ne vous aidaient pas, et surtout si vous êtes sur la version alpha ou bêta d'Android Studio, assurez-vous d'utiliser JDK intégré avec Android Studio. C'était mon cas, j'ai utilisé JDK téléchargé externe
Pour modifier JDK, allez dans fichier -> Paramètres -> build, exécution, déploiement -> Build Tools -> gradle
et sélectionnez jdk
intégré à partir de Dropdown Gradle Jdk
.
Merci, j'allais me tuer: /
J'utilisais JDK 11 pour un nouveau projet, mais je dois passer à JDK 1.8 pour l'ancien projet, j'espère que cela aide quelqu'un.
Merci beaucoup, j'allais aussi me tuer. Je ne comprends pas pourquoi cette réponse est moins de vote. La plus grande réponse.
Ce n'est pas nécessairement du poignard ou du moshi. Il peut s'agir de n'importe quelle bibliothèque qui utilise KAPT (processeur d'annotation Kotlin). Recherchez Kapt dans votre build.gradle et essayez de mettre à jour tout ce qui l'utilise.
Pour moi, c'était une bibliothèque qui utilisait une ancienne version de Kotlinpoet.
Dans mon cas, le poignard a causé le problème. Mise à jour de la dépendance élaborée.
implementation 'com.google.dagger:dagger:2.37' kapt 'com.google.dagger:dagger-compiler:2.37'
J'ai eu le même problème pendant la construction: kaptwithoutkotlinctask $ kaptexecutionworkAction J'ai eu un problème de liaison de données dans l'un de mes XML, qui a lancé cette erreur. C'était mon cas: abc.xml La variable objet n'a pas été déclarée. Après la déclaration, il a résolu le problème de construction. Le message d'erreur n'a pas pointé vers le bon emplacement dans mon cas. <layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  <data>
  </data>
  <TextView
android:text="@{object.name}"
... />
</layout>
Mon message d'erreur de dague semblait comme suit: Erreur: [AndroidProcessor: Miscerror]
dagger.android.processor.androidprocessor n'a pas pu traiter cela
classe parce que toutes ses dépendances ne pouvaient pas être résolues. vérifier
erreurs de compilation ou dépendance circulaire avec du code généré.
J'ai également eu cette erreur kapt: java.lang.reflect.invocationtargetException (pas de message d'erreur)
On m'a donné à quel fichier Dagger n'était pas en mesure de traitez correctement, mais aucune information exacte sur la dépendance manquante. J'ai appliqué toutes les correctifs que j'ai trouvées dans ce SO. J'ai dû examiner attentivement toutes les dépendances que je pouvais voir dans le fichier généré par Dagger pour quelle erreur a été affichée.
Dans mon cas, il était pas en mesure de trouver org.jetbrains.annotations.notnull
. J'ai remarqué que cette dépendance avait été mise à niveau, et en raison de quelques correctifs, j'ai déplacé pour utiliser androidx.annotation.nonnull
dans mon code. En fait, je ne dépendais pas de org.jetbrains.annotations
- il était inclus à partir d'une autre dépendance. L'erreur semblait comme suit:
Trouvé dans les modules-annotations à jet-22 (com.intellij: annotations: 12.0) et les annotations à jet-16.0.1 (org.JetBrains: Annotations: 16.0.1)
Je résolvais les conflits qui se sont retrouvés pour que la dépendance n'était pas visible par le poignard.
Comme d'habitude dans de tels cas, il était très utile de voir un arbre de dépendance et d'où les dépendances se promènent. Certaines dépendances ont été obsolètes et utilisées org.JetBrains: Annotations
dans la version ancienne, et j'ai dû les mettre à niveau ou bloquer cette dépendance d'être incluse dans mon code avec exclusion, par exemple:
Pour la liste des arbres de dépendance, voir ici: Comment montrer aux dépendances Tree dans Android Studio?
Oui dans mon cas récemment, j'ai résolu le problème en mettant à jour le poignard vers la dernière version et la mise à jour Gradle vers la dernière version ainsi que par l'utilisation du dernier JDK
Ce problème a refait surface pour moi après avoir mis à niveau mon projet vers Kotlin 1.6.0. Dans mon cas, c'est à cause de la Moshi Json Serialization Lib. Ils ont déjà inclus un correctif dans leur prochaine version. En attendant, je suis revenu à 1.5.31.
Ils l'ont corrigé dans 1.13.0
Dans mon cas, c'était un combo entre la salle de mise à niveau vers 2.4.x, Kotlin à 1.6.0 sur la puce Mac M1. La mise à niveau vers Moshi 1.13.0 a fait le travail! Saver! Merci mon pote!
J'ai eu ce problème lors de la mise à niveau de la version Kotlin vers 1.6.10
Pour réparer, j'ai dû mettre à jour la version Dagger à 2,36 ou plus et j'ai utilisé 2,40,5
implémentation "com.google.dagger: poignard: 2.40.5”
kapt "com.google.dagger: dagger-compiler: 2.40.5"
pour trouver les dernières versions de poignard - https://github.com/google/dagger/releases
Dans notre cas, AGP 7.1 avec Hilt 2,3y.z a échoué. Bumping Hilt à 2.4y.z a résolu notre problème. Merci
2.40.5 a fonctionné pour moi, 2,36 ne l'ont pas fait.
J'ai le même problème, et finalement résolu par la mise à jour Moshi à 1.12.0
a obtenu cette erreur en raison du fait que Gradle ne reconnaissait pas certains de mes modules. Re-synchronisation des paramètres. Gradle a corrigé ceci pour moi.
vous devez mettre à jour Hilt à 2.42
pour Kotlin 1.7
Pouvez-vous exécuter votre commande avec --debug? Vous pourriez voir vos erreurs.