Baseflow / LottieXamarin

Render After Effects animations natively on Android, iOS, MacOS and TvOS for Xamarin
https://baseflow.com
Apache License 2.0
1.21k stars 261 forks source link

Crash on iOS when using embedded images in Lottie #360

Open Glomby opened 2 years ago

Glomby commented 2 years ago

🐛 Bug Report

I use Lottie Animations in my cross platform App a lot and this is the first time I needed to use image sequences instead of the vector graphics. Like in a gif. I do need Lottie for this though because of the nice controlls.

The animation was created with After Effects and Bodymovin plugin. The images are embedded into the .json file and I tried to export in the old .json format as well.

When I don't embed the images it does not crash but the images aren't used in the animation (so it's blank). Even when setting the correct path I can't seem to make lottie find the image folder.

The error doesn't say much but this only happens when I include the Lottie animation: Foundation.MonoTouchException: 'Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[__NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil

It seems like including images does not work on iOS but it works perfectly fine on android. I'm only opening this issue because I haven't seen anything that clearly states this shouldn't work. It obviusly doesn't make sense to use lottie like this anyways but in this case it would be the best solution to my problem, if only it worked on iOS as well.

Expected behavior

Animation plays on Android and iOS.

Reproduction steps

  1. Create Image sequence in After Effects
  2. Render the sequence in Bodymovin with Assets Setting "Include in json" enabled.
  3. Import into Xamarin Projekt and test on Android (works) and iOS (crashes)

Configuration

Lottie.Forms Version: 4.0.11 Xamarin.Forms Version: 5.0.0.2196 Visual Studio Version: 16.11.4

iOS Version: 14.8 and 15 (both crashes)

Platform: