Kotlin KMM 'commonMain' зависимости: работает, AndroidStudio показывает ошибки

Я создал проект KMM, как описано здесь: https://kotlinlang.org/docs/mobile/getting-started.html

И я хочу добавить в модуль несколько общих классов. Классы требуют некоторых зависимостей. Поэтому я добавляю зависимости, как описано здесь: https://kotlinlang.org/docs/mobile/add-dependencies.html#dependency-on-a-library-used-in-specific-source-sets

shared/build.gradle.kts (сокращенно)

      ....
kotlin {
    android()
    ios {
        binaries {
            framework {
                baseName = "shared"
            }
        }
    }
    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("org.jetbrains.kotlin:kotlin-reflect:1.4.31")
            }
        }
...
        val androidMain by getting {
            dependencies {
            }
        }
....
        val iosMain by getting
        val iosTest by getting
    }
}
....

Итак, я создал этот вспомогательный класс, который использует kotlin-reflect библиотека.

Проблема:

AndroidStudio (4.1.3) не может найти зависимость, когда класс помещается только тогда, когда он помещается в. Когда запускаю проект - ошибок нет - все работает. Именно так видит это Android Studio. InjectManagerи иметь идентичный код. Чтобы иметь возможность использовать автозаполнение и т. Д., Мой текущий рабочий процесс выглядит следующим образом

  1. переместить класс в androidMain
  2. вносить изменения в код
  3. перетащите обратно в commonMain.

InjectManager2 только для демонстрации на скриншоте.

1 ответ

Я была такая же проблема. Приложение было создано и работало нормально, но в моих файлах и классах .kt в пакете commonMain появлялись различные ошибки. Мне удалось избавиться от них, добавив соответствующие операторы импорта, даже если они не были необходимы, когда код не находился в общем модуле.

Например, в одном файле были ошибки (неразрешенная ссылка) с парой экземпляров ArrayList(), и ошибки исчезли после добавления импорта для java.util.ArrayList

Другие вопросы по тегам