【问题标题】:Compilation issues ("Unresolved reference") when Trying to build an app for Android (using Kotlin, Compose in Android Studio)尝试为 Android 构建应用程序时的编译问题(“未解决的参考”)(使用 Kotlin,在 Android Studio 中编写)
【发布时间】:2022-11-06 22:14:57
【问题描述】:

在尝试使用 Kotlin 语言及其“Compose”库时,我遇到了一些示例问题(我在 Android 网站上查找了这些示例,所以我认为示例应该或多或少还可以)。

更准确地说,一些导入(在示例中指定)会产生错误消息,例如:

Unresolved reference: Card

对于进口:

import androidx.compose.material.Card

以下sn-p需要:

@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"
}

【问题讨论】:

  • 如果你问这个问题,你的问题将是关于这个网站的主题,就在这里。然而,寻求其他资源的帮助对于 Stack Overflow 来说是题外话。
  • 您可以将相关的依赖项添加到您的问题中吗? (即androidx.compose.material...)
  • 我看到您添加了导入等,但是您可以包含 Gradle 依赖项吗?如果您没有向他们添加任何内容,那么这可能是您的问题。 Compose 文档的Getting Started 部分提供了您需要的所有信息。
  • 添加这个:实现“androidx.compose.material:material:$compose_version”
  • 是的,正如@CodePoet 所说,您没有使用 androidx.compose.material.Card 的 Material 依赖项,但是我可能会建议您坚持使用一个库,如果您是,M3 库应该拥有您需要的一切(包括 M3 Card)只是玩实验。

标签: android kotlin android-jetpack-compose android-jetpack-compose-material3


【解决方案1】:

有没有加@ExperimentalMaterial3Api根据文档here? 也许这就是问题所在?

编辑:如果您使用的是材料 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"
}

如果您使用的是 Material 2,那么您需要将其添加到您的依赖项中:

implementation "androidx.compose.material:material:$compose_version"

【讨论】:

  • 问题是关于材料 2 库,而不是实验性材料 3。
  • 那么他正在使用material3进口......
  • 有一个 M3 引用 (import androidx.compose.material3.*) 但 Card 导入是 M2 (import androidx.compose.material.Card)?
猜你喜欢
  • 2022-10-08
  • 2019-03-19
  • 2016-09-18
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多