code: @WorkerThread
    public static LottieResult<LottieComposition> fromAssetSync(Context context, String fileName) {
      try {
        String cacheKey = "asset_" + fileName;
        if (fileName.endsWith(".zip")) {
          return fromZipStreamSync(new ZipInputStream(context.getAssets().open(fileName)), cacheKey);
        }
        return fromJsonInputStreamSync(context.getAssets().open(fileName), cacheKey);
      } catch (IOException e) {
        return new LottieResult<>(e);
      }
    }
docs: Parse an animation from src/main/assets. It is recommended to use {@link #fromRawRes(Context, int)} instead.
  The asset file name will be used as a cache key so future usages won't have to parse the json again.
  However, if your animation has images, you may package the json and images as a single flattened zip file in assets.
  
  @see #fromZipStreamSync(ZipInputStream, String)