web-dev-qa-db-fra.com

java.lang.IllegalStateException: SimpleTypeImpl ne doit pas être créé pour le type d'erreur

Ont été confrontés à cette erreur après la migration vers AndroidX.

Java.lang.IllegalStateException: SimpleTypeImpl should not be created for error type: ErrorScope{Error scope for class <ERROR CLASS> with arguments: org.jetbrains.kotlin.types.IndexedParametersSubstitution@14ac19e7}

Ce lien n'aide pas beaucoup

25
Shahzeb

Migrer vers l'option AndroidX dans Android Studio n'a pas beaucoup aidé. J'ai résolu cette erreur en apportant des modifications dans chaque fichier manuellement, changé les noms de package en fonction d'AndroidX dans le code et le xml. Si un fichier reste inchangé, vous verrez cette erreur. Veuillez vous assurer que votre version du plugin Kotlin, la version du plugin gradle, les outils de construction et Android la version studio est à jour.

3
Shahzeb

J'ai mis à jour vers Kotlin 1.3.20 mais cela n'a toujours pas fonctionné. J'ai alors décidé de vérifier le code source Kotlin. J'ai trouvé ça lien

J'avais une interface appelée DisplayItem<T> et j'ai supprimé son paramètre type. Après cela, j'ai commencé à obtenir l'erreur. En fait, à la fin de l'erreur dans logcat il dit DisplayItem

J'ai donc vérifié tous les types de DisplayItem dans le code et j'ai trouvé que j'avais oublié de supprimer un paramètre de type dans une variable LivaData comme le suivant:

MediatorLiveData<DataHolder<List<DisplayItem<MessageViewEntity>>>>

Après avoir supprimé le paramètre type de la variable, il a commencé à compiler. J'espère que cela vous aidera.

Remarque : vous pouvez utiliser git grep pour une recherche rapide.

9
savepopulation

Pour moi, l'erreur apparaissait en raison d'une instruction import non valide. Android Studio n'a rien montré à ce sujet. J'ai dû aller dans chaque fichier, puis studio a montré l'erreur d'importation non valide. Corrigé et l'erreur de construction a disparu.

5
theapache64

Mon principal conseil pour résoudre ce problème serait lorsque vous obtenez juste le message d'erreur sans aucun indice où se trouve l'erreur réelle, essayez l'option Android studio Analyser/Inspecter le code. En fouillant la sortie à partir de cela, j'ai trouvé les erreurs de compilation réelles qui déclenchaient le problème et pouvaient ensuite facilement les corriger.

Le vrai problème dans mon cas était lors du changement d'une classe générique, qui avait une classe imbriquée, en une classe abstraite et la création de deux sous-classes pour remplacer son utilisation précédente. J'avais encore des références de mon code à la classe de base abstraite d'origine où j'aurais dû les remplacer par l'une des deux nouvelles sous-classes.

4
greatape