在 Jetpack Compose 中,矢量图像不适用于 Android 5.0
In Jetpack Compose Vector Image is not working with Android 5.0
我正在尝试像这样导入矢量:
Image(
modifier = Modifier,
painter = painterResource(id = R.drawable.intro_svg_1),
contentDescription = ""
)
它似乎适用于 android 的所有版本,除了 Android 5.0 (API level 21)
。
错误日志如下:
2022-01-12 12:58:26.627 20063-20063/app.erpflow E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.erpflow, PID: 20063
android.content.res.Resources$NotFoundException: Resource ID #0x7f0700a1
at android.content.res.Resources.getValue(Resources.java:1457)
at androidx.compose.ui.res.PainterResources_androidKt.painterResource(PainterResources.android.kt:61)
at app.erpflow.screens.set_up_activity.page1.Screen1Kt.Screen1(Screen1.kt:31)
at app.erpflow.screens.set_up_activity.ViewPagerIntroKt$ViewPagerIntro.invoke(ViewPagerIntro.kt:54)
at app.erpflow.screens.set_up_activity.ViewPagerIntroKt$ViewPagerIntro.invoke(ViewPagerIntro.kt:51)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at com.google.accompanist.pager.Pager$Pager.invoke(Pager.kt:326)
at com.google.accompanist.pager.Pager$Pager.invoke(Pager.kt:315)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.foundation.lazy.list.LazyListScopeImpl$items.invoke(LazyListScopeImpl.kt:41)
at androidx.compose.foundation.lazy.list.LazyListScopeImpl$items.invoke(LazyListScopeImpl.kt:41)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content.invoke(LazyLayoutItemContentFactory.kt:103)
at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content.invoke(LazyLayoutItemContentFactory.kt:94)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:251)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:251)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.ComposerKt.invokeComposable(Composer.kt:3337)
at androidx.compose.runtime.ComposerImpl$doCompose.invoke(Composer.kt:2582)
at androidx.compose.runtime.ComposerImpl$doCompose.invoke(Composer.kt:2571)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:247)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2571)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:2522)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:478)
at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:748)
at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:2987)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:433)
at androidx.compose.ui.layout.SubcomposeLayoutState.subcomposeInto(SubcomposeLayout.kt:269)
at androidx.compose.ui.layout.SubcomposeLayoutState.access$subcomposeInto(SubcomposeLayout.kt:154)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:244)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:241)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.withNoObservations(SnapshotStateObserver.kt:142)
at androidx
是否有解决方法或者我应该.png?在那种情况下它工作正常,但我更喜欢 .svg 以获得更清晰的图像。
问题是 .svg 文件已作为 .xml 保存到 drawable-v24
。我将所有文件移动到 drawable
文件夹,它工作正常。
我正在尝试像这样导入矢量:
Image(
modifier = Modifier,
painter = painterResource(id = R.drawable.intro_svg_1),
contentDescription = ""
)
它似乎适用于 android 的所有版本,除了 Android 5.0 (API level 21)
。
错误日志如下:
2022-01-12 12:58:26.627 20063-20063/app.erpflow E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.erpflow, PID: 20063
android.content.res.Resources$NotFoundException: Resource ID #0x7f0700a1
at android.content.res.Resources.getValue(Resources.java:1457)
at androidx.compose.ui.res.PainterResources_androidKt.painterResource(PainterResources.android.kt:61)
at app.erpflow.screens.set_up_activity.page1.Screen1Kt.Screen1(Screen1.kt:31)
at app.erpflow.screens.set_up_activity.ViewPagerIntroKt$ViewPagerIntro.invoke(ViewPagerIntro.kt:54)
at app.erpflow.screens.set_up_activity.ViewPagerIntroKt$ViewPagerIntro.invoke(ViewPagerIntro.kt:51)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at com.google.accompanist.pager.Pager$Pager.invoke(Pager.kt:326)
at com.google.accompanist.pager.Pager$Pager.invoke(Pager.kt:315)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.foundation.lazy.list.LazyListScopeImpl$items.invoke(LazyListScopeImpl.kt:41)
at androidx.compose.foundation.lazy.list.LazyListScopeImpl$items.invoke(LazyListScopeImpl.kt:41)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content.invoke(LazyLayoutItemContentFactory.kt:103)
at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content.invoke(LazyLayoutItemContentFactory.kt:94)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:251)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:251)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.ComposerKt.invokeComposable(Composer.kt:3337)
at androidx.compose.runtime.ComposerImpl$doCompose.invoke(Composer.kt:2582)
at androidx.compose.runtime.ComposerImpl$doCompose.invoke(Composer.kt:2571)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:247)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2571)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:2522)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:478)
at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:748)
at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:2987)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:433)
at androidx.compose.ui.layout.SubcomposeLayoutState.subcomposeInto(SubcomposeLayout.kt:269)
at androidx.compose.ui.layout.SubcomposeLayoutState.access$subcomposeInto(SubcomposeLayout.kt:154)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:244)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose.invoke(SubcomposeLayout.kt:241)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.withNoObservations(SnapshotStateObserver.kt:142)
at androidx
是否有解决方法或者我应该.png?在那种情况下它工作正常,但我更喜欢 .svg 以获得更清晰的图像。
问题是 .svg 文件已作为 .xml 保存到 drawable-v24
。我将所有文件移动到 drawable
文件夹,它工作正常。