Как избежать перезапуска Android Studio из-за ошибки сборки Kotlin: не удается разрешить супертипы следующих классов - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть Android-приложение, написанное на Java, и сейчас я впервые пробую Kotlin.Я создал новое действие, используя Kotlin, которое должно вызываться из Java Code через startActivityforResult.Среда IDE (возможно, плагин Kotlin?) Автоматически добавила все, что было необходимо, в файлы сборки Gradle.Новое действие использует ключи из основного действия, чтобы идентифицировать и перечислить параметры и возвращаемые значения.Нет, когда я пытаюсь создать это приложение в Android Studio 3.3.1 с помощью плагина Android Gradle v3.3.1 и Kotlin 1.3.20.

Обычно это приводит к ошибке: не могут быть разрешены супертипы следующих классов.Пожалуйста, убедитесь, что у вас есть требуемые зависимости в classpath ...

В перечисленных классах есть 2 моих собственных класса (поэтому не проблема с зависимостями), супертип в обоих случаях одинаковый, а именноJava-интерфейс

interface AllDataLoadedListener {
    void allDataLoaded();
}

, расположенный вместе с другими определениями интерфейса в файле с именем DatabaseInterfaces.java.

Аннулирование кэша и перезапуск Android Studio в соответствии с предложением здесь помогает (невсегда, но в основном), но этот шаг, по-видимому, необходим после КАЖДОГО изменения кода, которое очень быстро раздражает.

В чем заключается корневая проблема, и как ее можно избежать и / или устранить?

1 Ответ

0 голосов
/ 18 февраля 2019

Оказывается, несмотря на неодобрение объявлять несколько интерфейсов в одном файле, компилятор Java все еще позволяет это, компилятор Kotlin в настоящее время не позволяет.Разделение файла интерфейса на файлы, каждый из которых имеет один (1 строка) интерфейс с соответствующими именами типов, также как и имена файлов, делает свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...