Android Compose 无法在 android studio 中预览可组合功能 "Rendering problem "

标签 android android-jetpack-compose

我无法预览下面代码中显示的可组合函数

@Preview
@Composable
fun StartingConversationInstructions() {
    Column {
        Text(stringResource(id = R.string.remember))

    }
}
但是当我尝试预览该功能时出现此错误
java.lang.NoSuchMethodError: 'androidx.compose.runtime.SlotTable
androidx.compose.runtime.Composer.getSlotTable()'   at 
androidx.ui.tooling.InspectableKt.Inspectable(Inspectable.kt:63)   at 
androidx.ui.tooling.preview.ComposeViewAdapter$WrapPreview$1.invoke(ComposeViewAdapter.kt:357)   at
 androidx.ui.tooling.preview.ComposeViewAdapter$WrapPreview$1.invoke(ComposeViewAdapter.kt:-1)   at
 androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:146)   at 
androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:-1)   at 
androidx.compose.runtime.AmbientKt.Providers(Ambient.kt:188)   at 
androidx.ui.tooling.preview.ComposeViewAdapter.WrapPreview(ComposeViewAdapter.kt:356)   at 
androidx.ui.tooling.preview.ComposeViewAdapter.access$WrapPreview(ComposeViewAdapter.kt:-1)   at 
androidx.ui.tooling.preview.ComposeViewAdapter$init$1.invoke(ComposeViewAdapter.kt:397)   at 
androidx.ui.tooling.preview.ComposeViewAdapter$init$1.invoke(ComposeViewAdapter.kt:-1)   at 
androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:146)   at 
androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:-1)   at 
androidx.compose.runtime.AmbientKt.Providers(Ambient.kt:188)   at 
androidx.compose.ui.platform.AmbientsKt.ProvideCommonAmbients(Ambients.kt:274)   at 
androidx.compose.ui.platform.AndroidAmbientsKt$ProvideAndroidAmbients$3.invoke(AndroidAmbients.kt:176)   at 
androidx.compose.ui.platform.AndroidAmbientsKt$ProvideAndroidAmbients$3.invoke(AndroidAmbients.kt:-1)   at androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:146)   at 
androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:-1)   at 
androidx.compose.runtime.AmbientKt.Providers(Ambient.kt:188)   at 
androidx.compose.ui.platform.AndroidAmbientsKt.ProvideAndroidAmbients(AndroidAmbients.kt:168)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Wrapper.kt:251)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Wrapper.kt:-1)   at 
androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:146)   at 
androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:-1)   at 
androidx.compose.runtime.AmbientKt.Providers(Ambient.kt:188)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Wrapper.kt:250)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Wrapper.kt:-1)   at 
.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:146)   at 
androidx.compose.runtime.internal.ComposableLambda.invoke(ComposableLambda.kt:-1)   at 
androidx.compose.runtime.ComposerKt.invokeComposable(Composer.kt:2904)   at 
androidx.compose.runtime.Composer.composeInitial(Composer.kt:2070)   at 
androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:353)   at 
androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:109)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.kt:235)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.kt:-1)   at 
androidx.compose.ui.platform.AndroidComposeView.setOnViewTreeOwnersAvailable(AndroidComposeView.kt:545) 
  at androidx.compose.ui.platform.WrappedComposition.setContent(Wrapper.kt:226)   at 
androidx.compose.ui.platform.WrappedComposition.onStateChanged(Wrapper.kt:275)   at 
androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)   at 
androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.java:196)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.kt:233)   at 
androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.kt:-1)   at 
androidx.compose.ui.platform.AndroidComposeView.onAttachedToWindow(AndroidComposeView.kt:610)   at 
android.view.View.dispatchAttachedToWindow(View.java:20479)   at 
android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3489)   at 
android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3496)   at 
android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3496)   at 
android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3496)   at 
android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3496)   at 
android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:44) Copy stack to clipboard  
 Tip: Try to refresh the layout. 

我使用的是安卓工作室版本: Android Studio 北极狐 | 2020.3.1 金丝雀4
Android Compose 版本: 1.0.0-alpha09
我认为这是问题的原因,因为您可以在 changes 中找到在这个版本中

Removed SlotTable, SlotReader and SlotWriter from the public API. These were marked as InternalComposeAPI previously. Now they are internal to the compose module.

最佳答案

在你的依赖中,改变

implementation "androidx.ui:ui-tooling:$compose_version"
implementation "androidx.compose.ui:ui-tooling:$compose_version"
那样有用吗?

关于Android Compose 无法在 android studio 中预览可组合功能 "Rendering problem ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65699408/

相关文章:

android - 如何在 Android 中加载 3d 对象?

java - 无法在 Android 11 上以编程方式拍照 - Intent 返回已取消状态

android - 如何使用按钮单击停止 onLocationChanged() 方法?

android - 包含图像按钮的 Activity 加载时间过长

android - 你如何覆盖而不是附加到 Android 中的文本文件?

android - 使用 Jetpack Compose 中的抽屉导航在可组合项之间导航

android - Jetpack 撰写 : Use different layout if text does not fit?

android - 适用于 Android 的 AutoLink 撰写文本

android - 有没有办法强制显示 Jetpack Compose 文本?

Android Jetpack撰写带有索引的懒惰列项目?