На разных устройствах stack разный
Такая ошибка возникает когда функция вызывает сама себя рекурсивно (очень много раз или постоянно). Вы можете также, создавать много элементов интерфейса, ошибка будет та же. Простейший способ избавится от ошибки (рекурсивной функции), реализовать вообще без рекурсивных функций. Т.е. заменить их вложенными в друг в друга циклами. Работать будет отлично. Если вы создаете много элементов интерфейса можно увеличить stack. Наберите в поисковике Android Studio - как увеличить размер выделенной кучи
Обратите внимание также на Handler, при неправильной реализации может быть утечка памяти
Посмотрите правильно ли вы завершаете все потоки