This one tripped me up for a while, because the documentation (both master and revamp) was not clear on where the entry point to the Python code should go. But eventually I discovered that if --private is given a relative path (on Linux), it silently fails: assets/private.mp3 is successfully built without any of the app code, resulting in an APK that installs but doesn't start.
Either --private should be extended to support relative paths, or the documentation should say they aren't supported, and p4a should fail loudly.