较新的Lottie文件无法在Android上与React Native一起使用吗?如何导出为旧版?

问题描述

好吧,我在React Native博览会上使用Lottie,并使用bodymovin插件将在AfterEffects中制作的动画导出为json。我import LottieView from 'lottie-react-native',他们在iOS上正常工作。

问题是,我在Android https://github.com/react-native-community/lottie-react-native/issues/473上运行时收到此错误

此答案指出问题是较新版本的Lottie,因此我在Lottie网站上找到了较旧的动画,而在Android上则没有问题。 因此,我进入了bodymovin高级设置,并勾选了“旧版”框,然后将其导出。但是我的动画仍然在Android上崩溃。

动画有什么问题吗?

编辑这是json:

{"v":"5.6.5","fr":60,"ip":0,"op":36,"w":184,"h":184,"nm":"navdot","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Ellipse 10","sr":1,"ks":{"o":{"a":0,"k":36,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[92.25,90.75,0],"ix":2},"a":{"a":0,"k":[0,"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0]},"t":0,"s":[147,147,100]},{"i":{"x":[0.667,"t":9,"s":[160,160,{"t":16,"s":[0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[37,37],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"op","nm":"Offset Paths 1","k":-11,"lj":1,"ml":{"a":0,"k":4,"ix":3,"mn":"ADBE Vector Filter - Offset",{"ty":"tr","k":[100,100],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"ix":4},"sa":{"a":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 10 stroke","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group",{"ty":"gr",{"ty":"fl","c":{"a":0,"k":[1,1],"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","nm":"Ellipse 10 Fill","np":2,"ix":2,"hd":false}],"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"nm":"Ellipse 9","t":16,"t":27,"s":[150,150,{"t":35,"k":[73,73],{"ty":"st","w":{"a":0,"k":34,"lc":1,"ml":4,"nm":"stroke 1","mn":"ADBE Vector Graphic - stroke","nm":"Ellipse 9 stroke","nm":"Ellipse 9 Fill","ind":3,"nm":"Shape Layer 1","k":[92,92,100,"it":[{"ty":"rc","d":1,"k":[151.469,146.914],"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","k":[-0.361,0.123],"k":[81.225,83.721],"nm":"Rectangle 1","bm":0}],"markers":[]}

解决方法

所以,我尝试了您的彩票文件,但她是空的

在我的项目中,每个彩票都做得很好,所以我想您的项目的解决方案是:

在您的package.json上,将您的lottie-react-native版本替换为^3.3.2 然后,在项目根文件夹中的终端上运行:rm -rf node_modules && npm install --save(如果您使用yarn而不是npm,则运行yarn install

然后,使用可以在lottiefiles上以json格式下载的任何文件替换乐透文件

这应该有效