Android cannot forward packets
Thanks to @Irfan Latif, I found the solution myself.
It's right that packets are sent to the last unreachable rule of ip rule, because they fail to match any previous rules:
# result of `ip rule`
... (no rules match)
22000:  from all fwmark 0x0/0xffff iif lo lookup wlan0 
32000:  from all unreachable

So I added a rule to route incoming traffic from local network to route table wlan0 by:
ip rule add from 192.168.0.0/16 iif wlan0 table wlan0