Проблемы компиляции («Неразрешенная ссылка») при попытке создать приложение для 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"