web-dev-qa-db-ja.com

java.lang.IllegalStateException:エラータイプに対してSimpleTypeImplを作成しないでください

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}

これ リンク はあまり役に立ちません

25
Shahzeb

Android StudioはAndroidXオプションに移行します。Studioはあまり役に立ちませんでした。すべてのファイルを手動で変更してこのエラーを解決し、コードとXMLの両方でAndroidXに従ってパッケージ名を変更しました。が変更されていない場合、このエラーが表示されます。Kotlinプラグインのバージョン、gradleプラグインのバージョン、ビルドツール、およびAndroidスタジオバージョンが最新であることを確認してください。

3
Shahzeb

Kotlin 1.3.20に更新しましたが、それでも機能しませんでした。次に、Kotlinソースコードを確認することにしました。私はこれを見つけました link

DisplayItem<T>というインターフェースがあり、そのtypeパラメーターを削除しました。この後、エラーが発生し始めました。実際には、logcatのエラーの最後にDisplayItemと表示されます

だから私はコードですべてのDisplayItem型をチェックしましたが、次のようにLivaData変数の1つの型パラメーターを削除するのを忘れていました。

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

変数から型パラメーターを削除した後、コンパイルを開始しました。これがお役に立てば幸いです。

git grepを使用すると、クイック検索を実行できます。

9
savepopulation

私にとって、エラーは無効なimportステートメントが原因で発生していました。 Android Studioはこれに関して何も表示しませんでした。すべてのファイルに移動する必要があり、Studioは無効なインポートエラーを表示しました。それを修正し、ビルドエラーはなくなりました。

5
theapache64

この問題を解決するための私の主なヒントは、本当のエラーがどこにあるのか手掛かりなしでエラーメッセージが表示されるだけの場合、Android studio分析/検査コードオプションを試してください。出力を掘り下げるこれから、問題を引き起こしている実際のコンパイルエラーを見つけ、簡単に修正できました。

私の場合の実際の問題は、ネストされたクラスを持つジェネリッククラスを抽象クラスに変更し、2つのサブクラスを作成して以前の使用法を置き換えるときでした。私はまだ、コードを元の抽象基本クラスに参照していたので、それらを2つの新しいサブクラスの1つに置き換えるべきでした。

4
greatape