Lottie-android: java.lang.RuntimeException: An error occured while executing doInBackground()

Created on 20 Nov 2018  路  5Comments  路  Source: airbnb/lottie-android

java.lang.RuntimeException: An error occured while executing doInBackground()

at android.os.AsyncTask$3.done(AsyncTask.java:300)

at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)

at java.util.concurrent.FutureTask.setException(FutureTask.java:222)

at java.util.concurrent.FutureTask.run(FutureTask.java:242)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

at java.lang.Thread.run(Thread.java:848)

Caused by: java.lang.OutOfMemoryError

at java.lang.String.<init>(String.java:255)

at java.lang.String.<init>(String.java:228)

at com.airbnb.lottie.LottieComposition$Factory.fromInputStream(LottieComposition.java:161)

at com.airbnb.lottie.FileCompositionLoader.doInBackground(FileCompositionLoader.java:17)

at com.airbnb.lottie.FileCompositionLoader.doInBackground(FileCompositionLoader.java:7)

at android.os.AsyncTask$2.call(AsyncTask.java:288)

at java.util.concurrent.FutureTask.run(FutureTask.java:237)

... 3 more

java.lang.OutOfMemoryError

at java.lang.String.<init>(String.java:255)

at java.lang.String.<init>(String.java:228)

at com.airbnb.lottie.LottieComposition$Factory.fromInputStream(LottieComposition.java:161)

at com.airbnb.lottie.FileCompositionLoader.doInBackground(FileCompositionLoader.java:17)

at com.airbnb.lottie.FileCompositionLoader.doInBackground(FileCompositionLoader.java:7)

at android.os.AsyncTask$2.call(AsyncTask.java:288)

at java.util.concurrent.FutureTask.run(FutureTask.java:237)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

at java.lang.Thread.run(Thread.java:848)

All 5 comments

This isn't Lottie related. Your app was running out of memory and Lottie happened to be the one thing that put it over the edge.

My Code:
`package com.example.ankitkadam.map;

import android.os.AsyncTask;
import android.util.Log;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;

/**

  • Created by Ankit Kadam on 17-02-2019.
    */

class GetNearbyPlacesData extends AsyncTask {

private String googlePlacesData;
private GoogleMap mMap;
String url;

@Override
protected String doInBackground(Object... objects){
    mMap = (GoogleMap)objects[0];
    url = (String)objects[1];

    DownloadURL downloadURL = new DownloadURL();
    try {
        googlePlacesData = downloadURL.readUrl(url);
    } catch (IOException e) {
        e.printStackTrace();
    }

    return googlePlacesData;
}

@Override
protected void onPostExecute(String s){

    List<HashMap<String, String>> nearbyPlaceList;
    DataParser parser = new DataParser();
    nearbyPlaceList = parser.parse(s);
    Log.d("nearbyplacesdata","called parse method");
    showNearbyPlaces(nearbyPlaceList);
}

private void showNearbyPlaces(List<HashMap<String, String>> nearbyPlaceList)
{
    for(int i = 0; i < nearbyPlaceList.size(); i++)
    {
        MarkerOptions markerOptions = new MarkerOptions();
        HashMap<String, String> googlePlace = nearbyPlaceList.get(i);

        String placeName = googlePlace.get("place_name");
        String vicinity = googlePlace.get("vicinity");
        double lat = Double.parseDouble( googlePlace.get("lat"));
        double lng = Double.parseDouble( googlePlace.get("lng"));

        LatLng latLng = new LatLng( lat, lng);
        markerOptions.position(latLng);
        markerOptions.title(placeName + " : "+ vicinity);
        markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));

        mMap.addMarker(markerOptions);
        mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
        mMap.animateCamera(CameraUpdateFactory.zoomTo(11));
    }
}

}
ERROR: 02-19 09:40:26.303 3147-3270/com.example.ankitkadam.map E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.example.ankitkadam.map, PID: 3147
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.InputStream.close()' on a null object reference
at com.example.ankitkadam.map.DownloadURL.readUrl(DownloadURL.java:49)
at com.example.ankitkadam.map.GetNearbyPlacesData.doInBackground(GetNearByPlacesData.java:33)
at com.example.ankitkadam.map.GetNearbyPlacesData.doInBackground(GetNearByPlacesData.java:20)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)聽
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)聽
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)聽
at java.lang.Thread.run(Thread.java:818)聽`

@AnkitKadam567 that is also unrelated to Lottie.

what is the reason behind this? Why am I getting this error?

found any solution yet???

Was this page helpful?
0 / 5 - 0 ratings