Annotate composition as nullable
diff --git a/lotte/src/main/java/com/airbnb/lotte/LotteAnimationView.java b/lotte/src/main/java/com/airbnb/lotte/LotteAnimationView.java
index 718ef05..707afda 100644
--- a/lotte/src/main/java/com/airbnb/lotte/LotteAnimationView.java
+++ b/lotte/src/main/java/com/airbnb/lotte/LotteAnimationView.java
@@ -10,6 +10,7 @@
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.support.annotation.FloatRange;
+import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.util.AttributeSet;
 import android.util.LongSparseArray;
@@ -32,7 +33,8 @@
     private final LongSparseArray<LotteLayerView> layerMap = new LongSparseArray<>();
     private final RootLotteAnimatableLayer rootAnimatableLayer = new RootLotteAnimatableLayer(this);
 
-    private LotteComposition composition;
+    /** Can be null because it is created async */
+    @Nullable private LotteComposition composition;
     private boolean hasInvalidatedThisFrame;
     @Nullable private Bitmap mainBitmap;
     @Nullable private Bitmap maskBitmap;
@@ -80,12 +82,12 @@
     }
 
     @Override
-    protected boolean verifyDrawable(Drawable drawable) {
+    protected boolean verifyDrawable(@NonNull Drawable drawable) {
         return true;
     }
 
     @Override
-    public void invalidateDrawable(Drawable dr) {
+    public void invalidateDrawable(@NonNull Drawable dr) {
         if (!hasInvalidatedThisFrame) {
             super.invalidateDrawable(rootAnimatableLayer);
             hasInvalidatedThisFrame = true;
@@ -191,7 +193,7 @@
         setComposition(composition);
     }
 
-    public void setComposition(LotteComposition composition) {
+    public void setComposition(@NonNull LotteComposition composition) {
         this.composition = composition;
         rootAnimatableLayer.setCompDuration(composition.getDuration());
         rootAnimatableLayer.setBounds(0, 0, composition.getBounds().width(), composition.getBounds().height());
@@ -201,6 +203,7 @@
     }
 
     private void buildSubviewsForComposition() {
+        //noinspection ConstantConditions
         List<LotteLayer> reversedLayers = composition.getLayers();
         Collections.reverse(reversedLayers);
 
@@ -278,10 +281,10 @@
     }
 
     public int getFrameRate() {
-        return composition.getFrameRate();
+        return composition != null ? composition.getFrameRate() : 60;
     }
 
     public long getDuration() {
-        return composition.getDuration();
+        return composition != null ? composition.getDuration() : 0;
     }
 }