It works great on the devices I’ve tested on. Which is like 4 out of the 15,000 possible OS+Device+Carrier combinations.
Please don't take offence, I'm just trying to explain why it did so bad on android.
edit: you don't need to test your app on 1500 devices. They are all the same, if you plan for it only two devices (big/small screen) should suffice. Source: former app developer.
But your app seems more demanding, can't you limit it to newer versions of android? Many banking apps for example require users to be on 6.0 or better.