Indoor App (forced close problem)

Hello,

I did an Android app that uses Estimote beacons indoor location
however when I tried to run the application , but it’s forced close

package com.example.albayan.location_try;

import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.app.Notification;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

import com.estimote.indoorsdk.IndoorLocationManagerBuilder;
import com.estimote.indoorsdk_module.algorithm.OnPositionUpdateListener;
import com.estimote.indoorsdk_module.algorithm.ScanningIndoorLocationManager;
import com.estimote.indoorsdk_module.cloud.CloudCallback;
import com.estimote.indoorsdk_module.cloud.EstimoteCloudException;
import com.estimote.indoorsdk_module.cloud.IndoorCloudManager;
import com.estimote.indoorsdk_module.cloud.IndoorCloudManagerFactory;
import com.estimote.indoorsdk_module.cloud.Location;
import com.estimote.indoorsdk_module.cloud.LocationPosition;
import com.estimote.indoorsdk_module.view.IndoorLocationView;
import com.estimote.internal_plugins_api.cloud.CloudCredentials;
import com.estimote.cloud_plugin.common.EstimoteCloudCredentials;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class MainActivity extends AppCompatActivity {

    IndoorLocationView indoorLocationView; // = (IndoorLocationView) findViewById(R.id.indoor_view);
    ScanningIndoorLocationManager indoorLocationManager;

    //IndoorLocationView a = (IndoorLocationView) findViewById(R.id.indoor_view);

    Handler h = new Handler();
    int delay = 1000; //1 second=1000 milisecond, 15*1000=15seconds
    Runnable runnable;
    int Xcount=0;

  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        indoorLocationView = (IndoorLocationView) findViewById(R.id.indoor_view);

        // Connection to Estimote and the App
        final CloudCredentials cloudCredentials = new EstimoteCloudCredentials("fireguider-ay4", "0e5620d33e32a3d8629c9510acce971c");
        IndoorCloudManager cloudManager = new IndoorCloudManagerFactory().create(this, cloudCredentials);

        // Get the saved map  in estimote
        cloudManager.getLocation("senior-project-room-np8", new CloudCallback<Location>() {

            TextView err = (TextView)findViewById(R.id.error);

            @Override
            public void success(Location location) {
                // view the map in the app ( have to insert it first in the Layout=========================
                indoorLocationView = (IndoorLocationView) findViewById(R.id.indoor_view);
                indoorLocationView.setLocation(location);
                err.setText("setLocation");


                // scan beacons automatically==============================================================
                indoorLocationManager = new IndoorLocationManagerBuilder(MainActivity.this, location,cloudCredentials)
                        .withDefaultScanner()
                        .build();

                // Position Update Listener ===============================================================
                indoorLocationManager.setOnPositionUpdateListener(new OnPositionUpdateListener() {
                    @Override //it will update the user's position in the mpp
                    public void onPositionUpdate(LocationPosition locationPosition) {

                        indoorLocationView.updatePosition(locationPosition);

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Movement", Toast.LENGTH_SHORT).show();

                            }
                        });

                        /*LocationPosition position2 = new LocationPosition(locationPosition.getX(), locationPosition.getY(), locationPosition.getOrientation());
                        List<LocationPosition> myList = Arrays.asList(position2);
                        indoorLocationView.setCustomPoints(myList);*/

                        locationPosition.getX();
                        locationPosition.getY();
                        locationPosition.getOrientation();

                        err.setText("setOnPositionUpdate");
                    }

                    @Override // I can't See You , Hide
                    public void onPositionOutsideLocation() {
                        indoorLocationView.hidePosition();

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "--Movement", Toast.LENGTH_SHORT).show();

                            }
                        });
                        indoorLocationManager.startPositioning();
                        err.setText("Error onPositionOutsideLocation");
                    }
                });
            }
            @Override
            public void failure(EstimoteCloudException e) {
                err.setText(e.getBody());
                //Log.e("MYAPP", e.getBody());
            }
        });

        // Notification ( Scanning beacons is still working in the background)
        Notification notification = new Notification.Builder(this)
                .setSmallIcon(R.drawable.notification_icon_background)
                .setContentTitle("Indoor location")
                .setContentText("Scan is running...")
                .setPriority(Notification.PRIORITY_HIGH)
                .build();

    }

    // Stop and Start

    
    @Override
    protected void onStart() {
        super.onStart();
        indoorLocationManager.startPositioning();

    }
    @Override
    protected void onStop() {
        super.onStop();
        if (indoorLocationManager != null)
            indoorLocationManager.stopPositioning();
    }

    /*@Override
    protected void onResume() {
        //start handler as activity become visible

        h.postDelayed(new Runnable() {
            public void run() {
                Xcount++;

                //do something
                //LocationPosition position2 = new LocationPosition(locationPosition.getX(), locationPosition.getY(), locationPosition.getOrientation());
                LocationPosition position1 = new LocationPosition(Xcount, 3.8, 10);
                List<LocationPosition> myList = Arrays.asList(position1);
                indoorLocationView.setCustomPoints(myList);

                runnable=this;

                h.postDelayed(runnable, delay);
            }
        }, delay);

        super.onResume();
    }

    @Override
    protected void onPause() {
        h.removeCallbacks(runnable); //stop handler when activity not visible
        super.onPause();
    }*/


}

Thanks

You can open a bug report on:

https://github.com/Estimote/Android-Indoor-SDK/issues/new

Make sure to include all the information we’re asking for, this will help us track down the problem and fix it! Stack trace/crash logs are probably the most important bit.

Thank you,
I send the report

Do you know what is the maximum time to replay on it?