繁体   English   中英

java.lang.NoSuchMethodError startRestartGroup 升级 Jetpack Compose 到 1.0.0-beta07 后

[英]java.lang.NoSuchMethodError startRestartGroup after upgrading Jetpack Compose to 1.0.0‑beta07

我刚刚将 compose 版本更新为 1.0.0-beta07,它显示了这个运行时错误

No interface method startRestartGroup(ILjava/lang/String;)Landroidx/compose/runtime/Composer; in class Landroidx/compose/runtime/Composer; or its super classes (declaration of 'androidx.compose.runtime.Composer' 
....
 at com.google.accompanist.coil.CoilImage__CoilKt.CoilImage(Coil.kt:245)
        at com.google.accompanist.coil.CoilImage.CoilImage(Coil.kt:1)

下面是我的 gradle 依赖文件

implementation 'androidx.core:core-ktx:1.5.0'
    implementation 'androidx.appcompat:appcompat:1.3.0'
    implementation 'com.google.android.material:material:1.3.0'

    implementation "androidx.compose.compiler:compiler:$compose_version"
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.compose.ui:ui-tooling:$compose_version"
    implementation "androidx.compose.runtime:runtime:$compose_version"
    implementation "androidx.compose.runtime:runtime-livedata:$compose_version"

    implementation 'androidx.activity:activity-compose:1.3.0-alpha08'
    implementation "androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha05"
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'

    implementation "io.coil-kt:coil-gif:1.2.1"
    implementation "io.coil-kt:coil-svg:1.2.1"
    implementation "com.google.accompanist:accompanist-coil:0.6.2"

和版本compose_version = '1.0.0-beta07'

根据Compose 发行说明,每个库都需要针对beta07重新编译才能正常工作:

注意:依赖于 Compose 的库需要使用 1.0.0-beta07 版本重新编译。 否则,库可能会遇到NoSuchMethodError ,例如: java.lang.NoSuchMethodError: No interface method startReplaceableGroup(ILjava/lang/String;)V in class Landroidx/compose/runtime/Composer; or its super classes. (Ia34e6) java.lang.NoSuchMethodError: No interface method startReplaceableGroup(ILjava/lang/String;)V in class Landroidx/compose/runtime/Composer; or its super classes. (Ia34e6)

在您的情况下,您必须使用0.10.0更新伴奏库。

改变:

implementation "com.google.accompanist:accompanist-coil:0.6.2"

implementation "com.google.accompanist:accompanist-coil:0.10.0"

确保您所有的撰写库都使用相同的版本1.0.0-beta07 那应该可以解决您的问题。

Coil、Glide 和 Image Loading Core 已被移除 在 v0.14.0 中被弃用后,是时候移除coil、glide 和 imageloading-core 库了。 有关此问题的一些讨论可以在 Kotlin Slack 上看到: https://kotlinlang.slack.com/archives/CJLTWPH7S/p1627482619344000 建议移至https://coil-kt.github.io/coil/compose/

所以改变;

implementation "com.google.accompanist:accompanist-coil:0.6.2"

implementation("io.coil-kt:coil-compose:1.3.2")

还; CoilImage 也去掉了,可以使用;

Image(
    painter = rememberImagePainter("https://www.example.com/image.jpg"),
    contentDescription = null,
    modifier = Modifier.size(128.dp)
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM