Free tool

Android Package Name Builder

Type a domain and an app name to get a compliant applicationId — or paste one you already use and learn exactly which rule it breaks before a build or an upload tells you.

No domain? Use io.github.yourusername.

The one field you can never edit

Every Android app carries an applicationId — commonly called the package name — and it is permanent from the first Play upload onward. The store uses it as the listing's identity, Android uses it to decide whether an APK is an update or a new app, and the filesystem uses it to fence off the app's private data. Publish as com.acme.shop and that string is yours until the listing dies. Choose badly and the only remedy is a fresh listing with no installs and no reviews.

What Gradle refuses

The checker above applies every one of these, which takes a second instead of a failed five-minute build.

What Google Play refuses on top

Anything starting with com.example — reserved for sample code, and the most frequent first-upload rejection. android as a segment is reserved too. And a package name used once on Play is spent forever: deleting the app, unpublishing it or closing the account does not release it for anyone, including you.

Reverse-domain naming without a domain

The convention flips your domain and appends the app: acme.com + a shop app = com.acme.shop. Its only purpose is uniqueness — you own the domain, so nobody else can honestly claim the prefix. No DNS lookup happens and the app is not hosted there.

Without a domain, use io.github.yourhandle.appname, which borrows the uniqueness of a GitHub account. Do not invent a plausible company domain: if someone registers it and publishes later, you lose.

Picking one that ages well

applicationId and namespace

Older projects treated them as one setting. Modern Gradle separates the namespace (the Kotlin/Java package your code lives in) from the applicationId (the identity Android and Play see). They normally match, and the split exists mainly so a debug build can add a .debug suffix and install beside the release build. When anyone asks for the "package name", they mean the applicationId.

Frequently asked questions

Can I rename my package after the app is on Google Play?

No. It is the listing's permanent identity. A different name is a different app — new listing, zero installs, zero reviews, and existing users are not migrated.

Why does Google Play reject com.example?

The prefix is reserved for documentation and samples. Play blocks it at upload; it is one of the most common first-submission rejections.

Do I have to own the domain in my package name?

Nothing verifies it, so technically no — but the convention exists to keep names unique, and using a domain someone else could register invites a conflict. Without a domain, use io.github.yourhandle.app.

Are digits and hyphens allowed?

Digits yes, as long as a segment does not start with one. Hyphens never — the checker flags them and suggests the fix.

What is the difference between applicationId and namespace?

namespace is the source-code package; applicationId is the identity Android and Play use. They are usually identical, and only the applicationId is permanent.

Read next

Related tools

Ready to turn your site into an app?

Upload an HTML file or a ZIP, set your icon and name, and download a signed Android app. No Android Studio, no command line.

Open the builder