将 Jetpack Compose 升级到 1.0.0‑beta07 后出现 java.lang.NoSuchMethodError [英] java.lang.NoSuchMethodError after upgrading Jetpack Compose to 1.0.0‑beta07
问题描述
在将 Jetpack Compose 升级到 1.0.0‑beta07 后,在 LiveData 对象上运行 observeAsState
时出现以下错误.
I'm getting the following error running observeAsState
on a LiveData object after I upgraded Jetpack Compose to 1.0.0‑beta07.
java.lang.NoSuchMethodError: No interface method startReplaceableGroup(ILjava/lang/String;)V in class Landroidx/compose/runtime/Composer; or its super classes
文档 说错误预计在升级时出现,为了解决它,必须重新编译依赖于 Compose 的库.
The documentation says that the error is expected upon upgrade and in order to resolve it one must recompile libraries dependent on Compose.
我不知道必须这样做.我尝试再次制作该项目,但也无济于事.
I do not know have to do that. I tried making the project again and also clearing and rebuilding it with no avail.
这是我项目中的依赖项:
Here are the dependencies in my project:
dependencies {
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.ui:ui-tooling:$compose_version"
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0-alpha01'
implementation 'androidx.activity:activity-compose:1.3.0-alpha07'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
implementation "io.github.vanpra.compose-material-dialogs:datetime:0.4.0"
implementation "io.github.vanpra.compose-material-dialogs:datetime:0.4.0"
implementation "androidx.appcompat:appcompat:$appCompatVersion"
implementation "androidx.activity:activity-ktx:$activityVersion"
implementation "androidx.room:room-ktx:$roomVersion"
kapt "androidx.room:room-compiler:$roomVersion"
androidTestImplementation "androidx.room:room-testing:$roomVersion"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.30"
api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines"
api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines"
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-beta06'
implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha07"
}
这些是版本:
ext {
compose_version = '1.0.0-beta07'
activityVersion = '1.1.0'
appCompatVersion = '1.2.0'
constraintLayoutVersion = '2.0.2'
coreTestingVersion = '2.1.0'
coroutines = '1.3.9'
lifecycleVersion = '2.3.1'
materialVersion = '1.2.1'
roomVersion = '2.3.0'
}
推荐答案
您的 runtime-livedata
依赖项已过时:
Your runtime-livedata
dependency is outdated:
implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-beta06'
您应该更新它以使用与其余 Compose 依赖项相同的版本:
You should update that to use the same version as the rest of your Compose dependencies:
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
哪个有效:
implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-beta07'
这篇关于将 Jetpack Compose 升级到 1.0.0‑beta07 后出现 java.lang.NoSuchMethodError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!