我正在开发一个带有 compose 的应用程序小部件。我在从资源获取字符串时遇到问题。如果我将文本作为字符串提供text = "Label",则它可以正常工作。但是,如果我使用 stringResource,则不会显示文本,并且我看到了这个问题。有人遇到过这个问题吗?谢谢
E/GlanceAppWidget: Error in Glance App Widget
java.lang.IllegalStateException: CompositionLocal LocalConfiguration not present
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt.noLocalProvidedFor(AndroidCompositionLocals.android.kt:167)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt.access$noLocalProvidedFor(AndroidCompositionLocals.android.kt:1)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$LocalConfiguration$1.invoke(AndroidCompositionLocals.android.kt:47)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$LocalConfiguration$1.invoke(AndroidCompositionLocals.android.kt:44)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at androidx.compose.runtime.LazyValueHolder.getCurrent(ValueHolders.kt:29)
at androidx.compose.runtime.LazyValueHolder.getValue(ValueHolders.kt:31)
at androidx.compose.runtime.ComposerImpl.resolveCompositionLocal(Composer.kt:1776)
at androidx.compose.runtime.ComposerImpl.consume(Composer.kt:1746)
at androidx.compose.ui.res.StringResources_androidKt.resources(StringResources.android.kt:78)
at androidx.compose.ui.res.StringResources_androidKt.stringResource(StringResources.android.kt:36)
Run Code Online (Sandbox Code Playgroud)
class MarketWidget : GlanceAppWidget() {
@Composable
override fun Content() {
Column(
modifier = GlanceModifier
.fillMaxSize()
.background(color = Color.White)
.padding(8.dp)
) {
Text(
text = stringResource(id = R.string.app_name)
)
}
}
}
Run Code Online (Sandbox Code Playgroud)