Connect to 3D printer via internet without router
There are a few solutions, but each one needs to match same criteria: an open network socket visible outside the local network.

So from TCP/IP protocol theory, we don't even need to have an IP address to send a packet to another computer as we can use layer One which is just the MAC address to identify the receiver. But things become more complicated when we have to provide a link to two separate endpoints.

Basic requirements:


We need to know public accessible IP address and port that server is exposed (listening) on
We can have a DNS entry that will be translated to public IP, but that assume that public IP is same all the time (or we have a dynDNS service)


Solutions:


Have the RPi exposed with public IP address and routed properly; 
Create a VPN bridge from RPi to your home/cloud network and connect Android to the same VPN;
Do a port forwarding to RPi from public IP and expose that in the firewall.


So at this point, if you don't have admin access to network devices then only solution '2' is viable, IMHO.