Jetpack Compose 矢量解析问题

alf*_*tap 9 android android-jetpack-compose

我正在尝试加载向量,但不断收到此错误堆栈跟踪

 java.lang.IllegalArgumentException: Unknown command for: R
    at androidx.compose.ui.graphics.vector.PathNodeKt.toPathNodes(PathNode.kt:275)
    at androidx.compose.ui.graphics.vector.PathParser.addNode(PathParser.kt:525)
    at androidx.compose.ui.graphics.vector.PathParser.parsePathString(PathParser.kt:84)
    at androidx.compose.ui.graphics.vector.VectorKt.addPathNodes(Vector.kt:72)
    at androidx.compose.ui.graphics.vector.compat.XmlVectorParser_androidKt.parsePath(XmlVectorParser.android.kt:279)
    at androidx.compose.ui.graphics.vector.compat.XmlVectorParser_androidKt.parseCurrentVectorNode(XmlVectorParser.android.kt:101)
    at androidx.compose.ui.res.VectorResources_androidKt.loadVectorResourceInner(VectorResources.android.kt:81)
    at androidx.compose.ui.res.VectorResources_androidKt.vectorResource(VectorResources.android.kt:62)
    at androidx.compose.ui.res.VectorResources_androidKt.vectorResource(VectorResources.android.kt:52)
    at com.tapmax.football.ui.screens.design.DesignScreenKt$KitPager$1.invoke(DesignScreen.kt:440)
    at com.tapmax.football.ui.screens.design.DesignScreenKt$KitPager$1.invoke(DesignScreen.kt:439)
Run Code Online (Sandbox Code Playgroud)

我无法复制矢量的完整代码,因此我附加了一个图像,它只是一个法线矢量

在此输入图像描述

hel*_*ios 2

您的编译器警告可能会抱怨 a RESOURCE_TOO_LONG(某些路径值)。这些似乎有一个上限。

解析器打开字符串值,找到 ,R但不知道如何处理它。

您可以:

  • 简化 XML(或用于生成它的源材料)。
  • 将该路径分成两条路径(可能Z在第一条路径的末尾添加一个 IIRC 以将其关闭,并M<last_coordinate>在第二条路径中添加一个以从其离开的位置开始)。但实际上最好有一个合规的来源来开始:)