代码之家  ›  专栏  ›  技术社区  ›  Vahid

将Jetpack Compose升级到1.0.0beta07后出现java.lang.NoSuchMethodError

  •  3
  • Vahid  · 技术社区  · 5 年前

    我在运行以下错误 observeAsState 在我升级Jetpack Compose到1.0.0beta07后的LiveData对象上。

    java.lang.NoSuchMethodError: No interface method startReplaceableGroup(ILjava/lang/String;)V in class Landroidx/compose/runtime/Composer; or its super classes
    

    The documentation 表示升级时会出现错误,为了解决此问题,必须重新编译依赖于Compose的库。

    我不知道你必须这么做。我试着重新做这个项目,也清理和重建,但没有结果。

    以下是我的项目中的依赖项:

    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'
        }
    
    1 回复  |  直到 5 年前
        1
  •  5
  •   Ryan M Jordan    5 年前

    你的 runtime-livedata 依赖关系已过期:

    implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-beta06'
    

    implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
    

    implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-beta07'
    
    推荐文章