-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
viewModel() 오류 추가질문입니다
23.10.14 10:17 작성 조회수 347
0
dependencies {
implementation("androidx.core:core-ktx:1.9.0")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose-ktx:2.6.2")
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.6.2")
implementation("androidx.activity:activity-compose:1.8.0")
implementation(platform("androidx.compose:compose-bom:2023.03.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00"))
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}
위와 같이 build.gradle.kts 파일내용을 변경한 후
아래아 같이 코드를 작성하면 34번줄 viewModel() 에서 오류가 발생합니다
또 viewModel() 에서 Alt+Enter 키를 누르면 아래처럼
여러개의 항목을 선택하는 창이 뜨는데 이중 어느것을 선택해야 하는지 ...
답변을 작성해보세요.
0
shafeel2
질문자2023.10.19
lifecycle_version 이 2.5.1 이면 오류가 사라지나
2.6.2 로 하였을때는
import androidx.lifecycle.viewmodel.compose.viewModel
가 되지 않았습니다
그래서 build.gradle 파일내용을 아래와 같이 수정하여 실행하니 오류가 사라졌습니다
dependencies {
val lifecycle_version = "2.5.1"
val arch_version = "2.1.0"
// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")
// ViewModel utilities for Compose
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version")
// LiveData
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")
// Lifecycles only (without ViewModel or LiveData)
implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version")
// Saved state module for ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")
// alternately - if using Java8, use the following instead of lifecycle-compiler
implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version")
// optional - helpers for implementing LifecycleOwner in a Service
implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version")
// optional - ProcessLifecycleOwner provides a lifecycle for the whole application process
implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version")
// optional - ReactiveStreams support for LiveData
implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version")
// optional - Test helpers for LiveData
testImplementation("androidx.arch.core:core-testing:$arch_version")
// optional - Test helpers for Lifecycle runtime
testImplementation ("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version")
.....
수고많으신 강사님
늘 건강하시고 부자되세요
0
shafeel2
질문자2023.10.14
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
HomeScreen()
}
}
}
@Composable
fun HomeScreen(viewModel : MainViewModel = viewModel()) {
Column() {
Text("Hello World")
Button(onClick = { }) {
Text("Click !")
}
}
}
class MainViewModel: ViewModel() {
private val _value = mutableStateOf("Hello World")
val value: State<String> = _value
}
오준석
지식공유자2023.10.14
보내주신 코드를 그대로 붙여서 해 보니 정말로 Alt + Enter 눌렀을 때 import 옵션이 안 나오는 현상을 발견했습니다!! 버그 인 것 같습니다.
수동으로 import 를 추가해 주시면 될 것 같습니다.
import androidx.lifecycle.viewmodel.compose.viewModel
버그 때문에 고생하셨습니다.
답변 2