kotlin java.lang.IllegalStateException:不应为错误类型创建SimpleTypeImpl

jhiyze9q  于 2022-11-16  发布在  Kotlin
关注(0)|答案(8)|浏览(346)

在迁移到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}

这个link没有多大帮助

0yg35tkg

0yg35tkg1#

对我来说,错误出现是由于无效的import语句。Android Studio没有显示任何关于相同的东西。我必须去每个文件,然后Studio显示无效导入错误。修复它,构建错误消失了。

9avjhtql

9avjhtql2#

我更新到Kotlin 1.3.20,但它仍然不工作。然后我决定检查Kotlin源代码。我发现这个link
我有一个名为DisplayItem<T>的接口,我删除了它的类型参数。在这之后,我开始得到错误。实际上,在logcat中的错误的结尾是DisplayItem
因此,我检查了代码中的所有DisplayItem类型,发现忘记删除LiveData变量中的一个类型参数,如下所示:

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

从变量中删除类型参数后,它开始编译。希望这对你有帮助。

注意:您可以使用git grep进行快速搜索。

ubby3x7f

ubby3x7f3#

我解决这个问题的主要技巧是,当你只是收到错误消息,却不知道真实的的错误在哪里时,尝试Android Studio的Analyze/Inspect代码选项。通过挖掘这个选项的输出,我发现了引发问题的实际编译错误,然后可以轻松地修复它们。
在我的例子中,实际的问题是当把一个有嵌套类的泛型类变成一个抽象类,并创建两个子类来替换它以前的用法时。我仍然有对原始抽象基类的引用,我应该用两个新子类中的一个来替换它们。

cnh2zyt3

cnh2zyt34#

Android Studio中的“迁移到AndroidX”选项没有太大帮助。我通过手动更改每个文件来解决此错误,根据AndroidX更改了代码和XML中的包名称。如果任何文件保持不变,您将看到此错误。请确保您的Kotlin插件版本、Gradle插件版本、构建工具和Android Studio版本是最新的。

hwamh0ep

hwamh0ep5#

我采取了以下步骤来解决此问题。
1-将android studio从4.1.1更新至4.2.1
2-更新www.example.com文件中的下行gradle-warepper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip

3-更新一些Kotlin扩展如下

buildscript {
    ext.kotlin_version = '1.3.72'

buildscript {
    ext.kotlin_version = '1.4.32'

 dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'

dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'

这将需要一些时间为gradle同步等,但finnaly对我来说解决了问题后,腰围一整天。

v9tzhpje

v9tzhpje6#

我刚刚在根目录build.gradle中更新了我的kotlin-gradle-plugin版本,它解决了我的问题

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32"
yh2wf1be

yh2wf1be7#

如果这个错误与import有关.那么我们也可以这样做
右击模块-〉优化导入。
这样,我们就不用去查看每一个文件并找出导入的内容,从而保存了时间。

juud5qan

juud5qan8#

将Kotlin依赖项升级到1.3.20,编译器将突出显示问题的根源。

相关问题