Проблемы компиляции («Неразрешенная ссылка») при попытке создать приложение для Android (с использованием Kotlin, Compose в Android Studio)

При экспериментировании с языком Kotlin и его библиотекой Compose у меня возникают проблемы с некоторыми примерами (которые я искал на сайте Android, поэтому я полагаю, что пример должен быть более или менее в порядке).

Точнее, некоторые операции импорта (указанные в примерах) выдают такие сообщения об ошибках, как:

      Unresolved reference: Card

для импорта:

      import androidx.compose.material.Card

необходимо для следующего фрагмента:

      @Composable
fun MyCard() {
    Card {
        Text("Card Content")
    }
}

Я не уверен, что ошибка связана с:

  • IDE (Android Studio).
  • Не хватает какого-то плагина.
  • Проблема с библиотеками.

Буду признателен за любые советы/подсказки о том, как действовать дальше.

Для полноты: другие импорты, относящиеся к Compose:

      import androidx.compose.foundation.layout.*
import androidx.compose.foundation.selection.toggleable
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.foundation.layout.fillMaxSize

Дополнительная информация:

      Android Studio Chipmunk | 2021.2.1 Patch 1
Build #AI-212.5712.43.2112.8609683, built on May 18, 2022
Runtime version: 11.0.12+0-b1504.28-7817840 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 12.4
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin (212-1.6.21-release-334-AS5457.46)

Зависимости Gradle (сгенерированные Android Studio):

      dependencies {
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation 'androidx.compose.material3:material3:1.0.0-alpha01'
    implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
    implementation 'androidx.activity:activity-compose:1.3.1'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
    debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
    debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_version"
}

2 ответа

Обновите зависимость Compose Material 3 в вашемbuild.gradleфайл в версию1.1.0-alpha02использоватьCard

      implementation 'androidx.compose.material3:material3:1.1.0-alpha02'

Тогда все, что вам нужно сделать в своем коде, это импортировать

      import androidx.compose.material3.*

использовать все компоненты Material 3, доступные в вашем коде

Вы добавили @ExperimentalMaterial3Api в соответствии с приведенной здесь документацией ? Может быть, это проблема?

Изменить: если вы используете Материал 3, вам необходимо удалить этот импорт:

      import androidx.compose.material.Card

Кроме того, для информации, зависимости Material 3 теперь имеют значение 1.0.0-alpha13:

      dependencies {
    implementation "androidx.compose.material3:material3:1.0.0-alpha13"
    implementation "androidx.compose.material3:material3-window-size-class:1.0.0-alpha13"
}

Если вы используете Материал 2, вам нужно добавить это в свои зависимости:

      implementation "androidx.compose.material:material:$compose_version"
Другие вопросы по тегам