迁移到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并没有太大帮助
答案 0 :(得分:3)
我更新为Kotlin 1.3.20
,但仍然无法正常工作。然后,我决定检查Kotlin
源代码。我发现了这个link
我有一个名为DisplayItem<T>
的接口,并且删除了它的type参数。在这之后,我开始得到错误。实际上,在logcat
错误的末尾,它显示为DisplayItem
所以我检查了代码中的所有DisplayItem
类型,发现我发现要删除LivaData
变量中的一个类型参数,例如以下内容:
MediatorLiveData<DataHolder<List<DisplayItem<MessageViewEntity>>>>
从变量中删除类型参数后,它开始编译。希望对您有帮助。
注意:您可以使用git grep
进行快速搜索。
答案 1 :(得分:2)
我要解决此问题的主要技巧是,当您仅收到错误消息而又不知道真正错误在哪里时,请尝试使用Android studio Analyze / Inspect代码选项。仔细研究一下输出结果,我发现了引发问题的实际编译错误,然后可以轻松地解决它们。
在我的情况下,实际的问题是将具有嵌套类的泛型类更改为抽象类,并创建两个子类来替换以前的用法。我仍然将我的代码引用到原始抽象基类上,在那里我应该用两个新的子类之一替换它们。
答案 2 :(得分:2)
我按照以下步骤解决了这个问题。
1-将 android studio 从 4.1.1 更新到 4.2.1
2-更新 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 同步等需要一些时间,但最终对我来说解决了一整天后的问题。
答案 3 :(得分:1)
迁移到Android Studio中的AndroidX选项并没有太大帮助。我通过手动更改每个文件来解决此错误,并根据代码和xml中的AndroidX更改了包名称。如果任何文件保持不变,您将看到此错误。请确保您的Kotlin插件版本,gradle插件版本,构建工具和Android Studio版本是最新的。
答案 4 :(得分:1)
对我来说,由于无效的import
语句而出现了错误。 Android Studio没有显示任何相同的内容。我必须转到每个文件,然后Studio显示了无效的导入错误。修复了它,构建错误消失了。
答案 5 :(得分:0)
将Kotlin依赖项升级到1.3.20,编译器将突出显示问题的根源。