Android: getfromLocationName () devuelve el tamaño 0 en la Lista de direcciones

Tengo una base de datos de ubicaciones. Cuando trato de convertirlos en coordenadas para poder colocarlos en un mapa, obtengo errores. Mi lista de direcciones de tipo dirección tiene un tamaño cero. Investigué el tema. Todos mis permisos de manifiesto son correctos. Mi teléfono está conectado a internet. He reiniciado mi teléfono. Sé que hay un problema con Google y las soluciones no ayudan. Las ubicaciones son precisas. Por favor ayuda.

Aquí hay un mensaje de error: android.database.CursorIndexOutOfBoundsException: índice 0 solicitado, con un tamaño de 0

private void setUpMap()  {
    DatabaseHandler db = new DatabaseHandler(this);
    Cursor c  = db.fetchAllAddresses();
    String place = c.getString(c.getColumnIndex("name"));
    Geocoder geocoder = new Geocoder(this, Locale.getDefault());
    List<android.location.Address> addresses = new ArrayList();
    try {
       addresses = geocoder.getFromLocationName(place,1);
    } catch (IOException e) {
        e.printStackTrace();
    }

    android.location.Address add = addresses.get(0);
    double lat = add.getLatitude();
    double lng = add.getLongitude();
    mMap.addMarker(new MarkerOptions().position(new LatLng(lat,lng)).title("Marker"));


    }

EDITAR esta es la fetchAllAddresses ()

  public Cursor fetchAllAddresses() {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor mCursor = db.query(TABLE_CONTACTS, new String[]{ "rowid _id", KEY_NAME,},null, null, null,null, null);

    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta