Android FATAL EXCEPTION: BeaconServiceThread

Following the Github tutorial here. Testing app on Motorola E Android 4.4.4, API 19.

Code:

public class BeaconActivity extends Application {

    private BeaconManager beaconManager;

    @Override
    public void onCreate() {
      super.onCreate();

        EstimoteSDK.initialize(this, "[name]", "[id]");
        EstimoteSDK.enableDebugLogging(true);

        beaconManager = new BeaconManager(getApplicationContext());

        final BeaconRegion beaconsRegion = new BeaconRegion("All beacons", null, null, null);

        beaconManager.setRangingListener(new BeaconManager.BeaconRangingListener() {
          @Override
          public void onBeaconsDiscovered(BeaconRegion region, List<Beacon> beacons) {
            if (beacons.size() != 0) {
              Log.d("Beacon", "BEACON DISCOVERED");
              Beacon beacon = beacons.get(0);
            }
          }
        });
        beaconManager.setBackgroundScanPeriod(5000, 10000);

        beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
          @Override
          public void onServiceReady() {
            Log.d("BeaconActivity", "Ready to start scanning for beacons");
            beaconManager.startRanging(beaconsRegion);
          }
        });
    }
}

Every time I try to run it, I get this error and the application crashes:

E/AndroidRuntime: FATAL EXCEPTION: BeaconServiceThread
java.lang.NoClassDefFoundError: android.bluetooth.le.ScanFilter$Builder
at com.estimote.coresdk.scanning.bluetooth.filters.BeaconRegionFilter.createBootloaderFilter(BeaconRegionFilter.java:61)
at com.estimote.coresdk.scanning.bluetooth.filters.BeaconRegionFilter.create(BeaconRegionFilter.java:45)
at com.estimote.coresdk.scanning.bluetooth.filters.FilterManagerImpl.createScanFiltersList(FilterManagerImpl.java:95)
at com.estimote.coresdk.observation.internal.module.ObservationModuleImpl.getHardwareFilters(ObservationModuleImpl.java:216)
at com.estimote.coresdk.service.EstimoteScanningStack.updateScanParams(EstimoteScanningStack.java:92)
at com.estimote.coresdk.service.EstimoteScanningStack.startRanging(EstimoteScanningStack.java:140)
at com.estimote.coresdk.service.BeaconService.startRanging(BeaconService.java:170)
at com.estimote.coresdk.service.BeaconServiceMessengerImpl$1.run(BeaconServiceMessengerImpl.java:110)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)

Any idea what could be going on here?

It looks like our SDK is trying to use Android BLE scanning API only introduced in Android 5.0—so, a bug.

Are you on the latest version of the SDK?