diff --git a/lottie/src/main/java/com/airbnb/lottie/BaseLayer.java b/lottie/src/main/java/com/airbnb/lottie/BaseLayer.java index ab53c7192c..7bb7537c8a 100644 --- a/lottie/src/main/java/com/airbnb/lottie/BaseLayer.java +++ b/lottie/src/main/java/com/airbnb/lottie/BaseLayer.java @@ -21,6 +21,7 @@ abstract class BaseLayer implements DrawingContent, BaseKeyframeAnimation.Animat private static final int SAVE_FLAGS = Canvas.CLIP_SAVE_FLAG | Canvas.CLIP_TO_LAYER_SAVE_FLAG | Canvas.MATRIX_SAVE_FLAG; + @Nullable static BaseLayer forModel( Layer layerModel, LottieDrawable drawable, LottieComposition composition) { switch (layerModel.getLayerType()) { @@ -40,7 +41,7 @@ static BaseLayer forModel( default: // Do nothing Log.w(L.TAG, "Unknown layer type " + layerModel.getLayerType()); - return new NullLayer(drawable, layerModel); + return null; } } diff --git a/lottie/src/main/java/com/airbnb/lottie/CompositionLayer.java b/lottie/src/main/java/com/airbnb/lottie/CompositionLayer.java index 9a4049d96e..ec9dc41498 100644 --- a/lottie/src/main/java/com/airbnb/lottie/CompositionLayer.java +++ b/lottie/src/main/java/com/airbnb/lottie/CompositionLayer.java @@ -26,6 +26,9 @@ class CompositionLayer extends BaseLayer { for (int i = layerModels.size() - 1; i >= 0; i--) { Layer lm = layerModels.get(i); BaseLayer layer = BaseLayer.forModel(lm, lottieDrawable, composition); + if (layer == null) { + continue; + } layerMap.put(layer.getLayerModel().getId(), layer); if (mattedLayer != null) { mattedLayer.setMatteLayer(layer);