diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java b/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
index 9956cfa..eae6e7f 100644
--- a/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
+++ b/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
@@ -373,7 +373,12 @@
    */
   public void setMinFrame(final int minFrame) {
     if (composition == null) {
-      lazyCompositionTasks.add(c -> setMinFrame(minFrame));
+      lazyCompositionTasks.add(new LazyCompositionTask() {
+        @Override
+        public void run(LottieComposition composition) {
+          setMinFrame(minFrame);
+        }
+      });
       return;
     }
     animator.setMinFrame(minFrame);
@@ -406,7 +411,12 @@
    */
   public void setMaxFrame(final int maxFrame) {
     if (composition == null) {
-      lazyCompositionTasks.add(c -> setMaxFrame(maxFrame));
+      lazyCompositionTasks.add(new LazyCompositionTask() {
+        @Override
+        public void run(LottieComposition composition) {
+          setMaxFrame(maxFrame);
+        }
+      });
       return;
     }
     animator.setMaxFrame(maxFrame);
@@ -438,9 +448,14 @@
    * @see #setMinFrame(int)
    * @see #setMaxFrame(int)
    */
-  public void setMinAndMaxFrame(int minFrame, int maxFrame) {
+  public void setMinAndMaxFrame(final int minFrame, final int maxFrame) {
     if (composition == null) {
-      lazyCompositionTasks.add(c -> setMinAndMaxFrame(minFrame, maxFrame));
+      lazyCompositionTasks.add(new LazyCompositionTask() {
+        @Override
+        public void run(LottieComposition composition) {
+          setMinAndMaxFrame(minFrame, maxFrame);
+        }
+      });
       return;
     }
     animator.setMinAndMaxFrames(minFrame, maxFrame);
