将 Jetpack Compose 升级到 1.0.0‑beta07 后出现 java.lang.NoSuchMethodError [英] java.lang.NoSuchMethodError after upgrading Jetpack Compose to 1.0.0‑beta07

查看:32
本文介绍了将 Jetpack Compose 升级到 1.0.0‑beta07 后出现 java.lang.NoSuchMethodError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在将 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆