Столкнулись с этой ошибкой после перехода на 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}
Этот ссылка на сайт мало помогает
Я тоже это вижу! Удалось ли вам решить эту проблему?
@UtkarshBarsaiyan Мне пришлось внести изменения вручную даже после выбора «Мигрировать на AndroidX» из Android Studio, и я понял, что пока все не обновится (версии, IDE, gradle, код и т. д.), Эта ошибка не исчезнет.
Я обнаружил, что следующая после строки java.lang.IllegalStateException строка дает имя проблемного класса. В моем случае у меня не было зависимости gradle (для rxjava) в модуле библиотеки-нарушителя.
У тебя есть решение?
В дополнение к предложению @ AgileNinja моя ошибка заключалась в выводе [ERROR: Response<T>]. Это произошло потому, что я удалил зависимость от модификации одного из моих модулей. Хорошие 2 часа потрачены впустую ...
Обновите свою зависимость Kotlin до 1.3.20, и компилятор выделит источник ваших проблем.
Я обновился до Kotlin 1.3.20, но он все еще не работал. Тогда я решил проверить исходный код Kotlin. Нашел вот этот ссылка на сайт
У меня был интерфейс под названием DisplayItem<T>, и я удалил его параметр типа. После этого я начал получать ошибку. Собственно, в конце ошибки в logcat написано DisplayItem
Итак, я проверил все типы DisplayItem в коде и обнаружил, что забыл удалить один параметр типа в переменной LiveData, например:
MediatorLiveData<DataHolder<List<DisplayItem<MessageViewEntity>>>>
После удаления параметра типа из переменной он начал компилироваться. Надеюсь, это тебе поможет.
Примечание: Вы можете использовать git grep для быстрого поиска.
У меня много классов, в которых я использую <T>, и я не могу удалить их по мере необходимости. Есть ли другое решение?
git grep на чем?
когда вы проверяете логи, он говорит тип. вы должны выполнить поиск по типу и проверить, какой из них вы пропустили, чтобы удалить параметр типа.
@IgorGanapolsky В моем случае проблемным сломанным классом был Event<Boolean, поэтому я поискал grep -rin 'Event<Boolean>' * и нашел ViewModel с неправильным импортом. Удачи, друг мой.
Это может быть поздно. Но при поиске LiveData в моем случае я обнаружил, что некоторые шаблоны относятся к несуществующим типам.
Вариант перехода на AndroidX в Android Studio не очень помог. Я решил эту ошибку, внеся изменения в каждый файл вручную, изменив имена пакетов в соответствии с AndroidX как в коде, так и в xml. Если какой-либо файл оставить без изменений, вы увидите эту ошибку. Убедитесь, что у вас установлена актуальная версия плагина Kotlin, версия плагина Gradle, инструменты сборки и версия Android Studio.
Для меня ошибка возникла из-за недопустимого оператора import. Android Studio ничего не показала по этому поводу. Мне пришлось перейти к каждому файлу, затем студия показала неверную ошибку импорта. Исправлено, и ошибка сборки исчезла.
Фактически это отображалось в предварительном просмотре каждого файла при поиске слова «импорт», что дало мне больше подсказок о том, что пошло не так.
Это действительно отсутствие импорта вызвано моей стороной. Используйте меню Анализировать> Проверить код, если вы не хотите проверять каждый файл на отсутствие импорта.
Для меня это была аналогичная проблема. Кроме того, импорт был в тестовом файле, который, как я наблюдал в прошлом, не проходит проверку компилятора со стороны IDE, пока они не будут запущены или открыты ...
Аналогичная проблема. Спасибо за ваш опыт.
@pablisco, ты спас мне день. Мой отсутствующий оператор импорта действительно находился в тестовом файле
Мой главный совет по решению этой проблемы: когда вы просто получаете сообщение об ошибке, не зная, где настоящая ошибка, попробуйте опцию Android Studio Analyze / Inspect code. Просматривая вывод из этого, я обнаружил фактические ошибки компиляции, которые вызывали проблему, и затем смог легко их исправить.
Фактическая проблема в моем случае заключалась в изменении общего класса, у которого был вложенный класс, на абстрактный класс и создании двух подклассов для замены его предыдущего использования. У меня все еще были ссылки в моем коде на исходный абстрактный базовый класс, где я должен был заменить их одним из двух новых подклассов.
Я сделал следующие шаги, чтобы решить проблему.
1. Обновлена студия Android с 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 и т. д. Потребуется некоторое время, но, в конце концов, я решил проблему после целого дня ожидания.
Убедитесь, что вы обновили все: IDE, Gradle, версию Kotlin, плагин Kotlin IDE и т. д. Я думаю, что у меня это было однажды, и это было связано с IDE / плагином.