I am trying to access
raspberrypi.local from my android device. I have set up avahi daemon on the rpi and can access the web server from my PC but it's not working for any of the android devices.
What could I be doing wrong?
Your situation is explained on Android SE. Android doesn't include mDNS in standard name resolution results, so unless the Android app you're using explicitly uses mDNS library, it will not see
Your options are to either find (or write) an Android app with mDNS support, or set up a regular DNS server in your network. Your router may already have such a feature.
You're out of luck. Android doesn't have any support for Bonjour (aka mDNS, aka zeroconf networking). You'll need to discover your Raspberry Pi's IP address (192.168.xxx.xxx) and use that.
It's available on Windows (if you have Apple's iTunes or Bonjour installed), it's available on Linux with avahi-daemon and the avahi-tools and because Apple invented it, it's available on OSX, ipads and iphones.