Getting Started
APK Beaver is a Windows desktop application that turns a website, a folder of HTML files, or an app you design on screen into a real Android app (.apk or .aab) that you can install on a phone or upload to the Google Play Store.
You do not need to know programming, Android development, or the command line. Everything is done through the app's visual interface.
What you'll need before starting
APK Beaver must be activated with a license key before you can use it. See License Activation.
A website address (e.g. https://myshop.com), a folder on your PC containing an index.html, or nothing at all β you can design the app with the built-in Visual Builder.
About 1 GB of free disk space for the build tools (downloaded once), plus space for each app you build.
Needed for the first-time tool download, for activation, and for apps that load a website or ads.
The app window
The window has three main areas:
| Area | What it does |
|---|---|
| Top bar | Shows your license status (e.g. π Full license) and the πΎ Save Project and π Open Project buttons. |
| Left panel | The Build wizard β six steps you work through from top to bottom β and, at the bottom, the π§ Build Tools box with a Manage Tools button. |
| Main area & footer | The current step's settings. The footer has β Back, Preview, and Next Step β (which becomes π Build My App! on the last step). |
The 6 steps
You can click any step in the left panel to jump to it, or use Next Step / Back at the bottom. Completed steps show a β.
License Activation
When you start APK Beaver, it checks for a valid license. If none is found, a License Activation window appears instead of the main app.
Type or paste your key into the field in the activation window.
If the key is accepted, the window closes and the main app opens. If not, an error message is shown β check the key and try again. Use Get Your License Key in that window if you still need one.
Reading the license badge
The badge at the top of the main window tells you what your license allows:
| Badge | Meaning |
|---|---|
| π Full license | Everything is unlocked: Signed APK, Signed AAB and the Visual Builder. |
| π 2 features (or similar) | Only some features are included. Hover over the badge to see which ones. |
| π Not licensed | The license isn't active. You can look around, but builds are blocked. |
Locked features
Features that are not part of your license are marked π Locked: Signed APK and Signed AAB (Step 5) and Visual Builder (Step 1). You can still see them, but clicking one shows a message such as βVisual Builder is locked on your license β upgrade your plan to unlock this featureβ. Locked outputs are automatically un-ticked so they don't block your build.
If you press Build My App! while the license isn't active, you'll see βYour license is not active. Please activate the software.β and nothing is built.
Download Build Tools
Before you can build your first app, APK Beaver needs to download a set of Android build tools. This only needs to be done once β the tools are stored on your PC and reused for every app.
A red β!β badge next to π§ Build Tools at the bottom of the left panel means some tools are missing. Follow the steps below before building.
It's the button in the Build Tools box at the bottom of the left panel. The main area switches to the Build Tools Manager.
The required components are JDK 17, Android SDK, Android Platform, Build Tools and Gradle. Each is shown as β Ready or β Missing. The line above the list tells you either ββ All build tools installed and ready.β or how many components are missing.
A progress bar and status text appear. The total download is around 400 MB β keep the app open until it finishes. Each component is downloaded and unpacked in turn.
When the status turns green, click β Back to wizard and continue. The red β!β badge disappears.
If the download fails or is interrupted, click the button again. Components that were already downloaded are skipped, so you only fetch what's missing.
Tools are stored under C:\Users\<you>\AppData\Local\Web2APK\tools. Unpacking uses Windows PowerShell, so Windows 10 or later is required.
Your Website
Click Your Website in the left panel (this is the first screen you see). Choose where your app's content comes from using the three buttons at the top of the App Source card.
| Option | When to use it | What to do |
|---|---|---|
| π Website URL | Your content is already live on the internet | Enter the full address, e.g. https://mywebsite.com. The app loads this site inside a native Android wrapper. |
| π Local HTML Folder | You have HTML files on your computer and want them packed inside the app | Click Browseβ¦ and choose the folder that contains your index.html. The files are bundled into the app, so it can run without a server. |
| π¨ Visual Builder | You don't have a website and want to design the app yourself | Click Open Visual App Builder. See Visual Builder. |
The URL field starts out filled with the placeholder https://example.com. Replace it with your own address before building.
Any site that loads in a normal browser will work β a shop, blog, web app, booking system or portfolio. Use the Preview button in the footer to open the URL in your browser and check it first.
The Visual Builder option shows a π if your license doesn't include it.
App Identity
Click App Identity. These fields control how your app appears on a phone and in app stores.
App details
com.yourcompany.appname. Lowercase letters, digits and underscores, with at least two parts separated by dots. No spaces or capitals.1.0.01 and increase by 1 with every updateThe fields come pre-filled with sample values (My App and com.example.myapp). Change them β Google Play will not accept com.example apps and every app needs its own package name.
The Package Name must be unique worldwide. A good pattern is your domain name reversed: for myshop.co.za use za.co.myshop.
Branding (optional)
Click the App Icon or Splash Screen tile to choose an image from your PC (PNG or JPG). If you skip these, default visuals are used.
| Asset | Recommended size | Format |
|---|---|---|
| App Icon | 512 Γ 512 pixels | PNG (square; transparent background recommended) |
| Splash Screen | 1080 Γ 1920 pixels | PNG |
Your icon image is used as-is at every size, so use a clean, square image with a little padding around the artwork.
Features & Permissions
Click Features. Here you switch on extra capabilities and choose which device permissions your app may ask for.
App features
Permissions
Tap a button to switch a permission on (β) or off. Only enable what your app really needs β unnecessary permissions can get an app rejected on the Play Store.
Taking photos or scanning QR codes.
Voice input or audio recording.
Picking images and videos from the gallery.
GPS and βnear meβ features (precise and approximate location).
Required on Android 13 and newer to show any notification.
Reading the phone state β rarely needed.
Reading and writing the contact list.
Reading and writing calendar events.
Connecting to and scanning for Bluetooth devices.
Reading NFC tags.
Camera, Media and Notifications are switched on by default; the others start off. Every app also automatically includes Internet, network-state, Wi-Fi-state and vibrate access β these are needed for any web app and can't be turned off.
Setting up the navigation menu
When you switch on Hamburger Navigation Menu, a Navigation Menu Setup card appears below the permissions.
#2196F3).Two example rows (Home, pre-filled with your website address, and About) are created for you. The first row acts as your home page: the π button on the right of the top bar always returns there. Menu links open inside the app, not in the phone's browser.
A menu row is only used if it has both a label and a URL. Fill in the About URL or delete that row. If no row is complete, the menu is not added to the app.
The drawer panel currently uses the same colour as the Bar Color; the Drawer Background picker does not change it.
If you turn on Push Notifications, you must also enter your App ID β see the next section.
Monetization (Ads)
Click Monetization. This step is completely optional β just click Next Step if you don't want ads.
Enabling AdMob ads
APK Beaver supports Google AdMob so you can earn money from your app. Three ad types are available:
A small advertisement strip shown inside the app.
A full-screen ad shown between pages or actions.
The user watches a video ad to earn a reward. Optional β leave its ID blank to disable.
The AdMob fields appear below.
From your AdMob account: the App ID (ca-app-pub-XXXX~XXXX), the Banner Ad Unit ID and the Interstitial Ad Unit ID (both like ca-app-pub-XXXX/XXXX). Add a Rewarded Ad Unit ID only if you want rewarded ads.
This fills in Google's official test IDs (including rewarded), so you can see ads working without a real AdMob account. A warning reminds you they are test IDs.
Test IDs are for testing only. Replace them with your real AdMob IDs before publishing, otherwise you will not earn anything and the Play Store may reject the app.
Triggering rewarded ads from your website
If you filled in a Rewarded Ad Unit ID and your app loads your own website, your page can use these helpers:
AndroidAds.isRewardedReady()
// Show the ad
AndroidAds.showRewarded()
// Find out what happened
window.addEventListener('rewardedAdResult', e => {
if (e.detail.rewarded) { /* give the reward */ }
});
In the Visual Builder you don't need any code β use the Rewarded ad button component instead.
Signing & Build Options
Click Signing & Build. A keystore is a secure digital certificate that signs your app. Android requires every app to be signed before it can be installed or published.
Keystore β Auto-Generate vs Use Existing
Best for new apps. APK Beaver creates a secure keystore for you β nothing else to configure.
Choose this when you are updating an app that is already published. Browse to your .jks or .keystore file. You must use the same keystore as the previous release, or Google Play will reject the update.
Keystore credentials
Back up your keystore and remember its passwords. If you lose either, you can never update your app on the Play Store.
Where auto-generated keystores live
A generated keystore is saved as <alias>-release.jks in C:\Users\<you>\AppData\Local\Web2APK\keystores. If a keystore with that alias already exists, it is reused rather than replaced β so enter the same password as before, or choose a different alias to start a fresh one. If the password is wrong, the build stops with a clear message.
To back it up, type the alias in the box under the warning and click β¬οΈ Download Keystore. This opens the folder containing the file β copy the .jks to a safe place such as cloud storage. It works after your first build has created the keystore.
Build output
Both are ticked by default. Untick one if you only need the other β but at least one must stay ticked.
Other build settings
| Setting | What it does | Recommendation |
|---|---|---|
| Target Android Version | The Android version your app is built for. | Leave as Android 16 (API 36). Google Play requires this; older targets (APIs 32β35) are marked sideload only and are rejected by Google Play. |
| Minimum Android Version | The oldest Android version that can install your app. | Leave as Android 7.0 (API 24). Options: API 21 (Android 5.0), 24, 26 (Android 8.0). |
| β‘ Fast Build Mode | Keeps only the finished APK/AAB. Turn it off to also keep the full Android source project. | Keep ON to save disk space. |
Build & Download
When you reach the last step, the Next Step button becomes π Build My App!.
APK Beaver first checks that everything is filled in correctly. If something is missing, a red ββ Validation errorβ line appears in the build console telling you exactly what to fix β go back to that step and try again.
A progress window shows the current stage and a percentage while the build console prints a live log.
This normally takes a few minutes; your first build may take longer. When it finishes, the progress window closes and a π Your App Files card appears below the console.
Read the red lines in the console β they explain what went wrong. Common causes are listed in Troubleshooting.
The Cancel button currently only closes the progress window. The build itself keeps running in the background, so wait for it to finish before starting another one.
The small clear button on the console title bar empties the log.
Push Notifications
APK Beaver connects your app to a hosted Push Dashboard. You never need a Firebase account or a google-services.json file β you only need an App ID from the dashboard.
Set it up
A green Push Notifications Active panel appears with an APP_ID field.
Click Open Push Dashboard (it opens in your browser), sign in, create or open your app, and copy its App ID β a short code such as 8394fa.
Paste it into the APP_ID field in APK Beaver. Keep it exact β without it, devices cannot be linked to your dashboard app.
Each time someone opens the app, their phone is registered with your App ID. Make sure the Notifications permission is on (Step 3) so Android 13+ phones can show notifications.
Sending messages from the dashboard
A normal phone notification, even when the app is closed. You provide a title, a message and (optionally) an image. The dashboard reports how many devices received it.
A coloured banner that slides up from the bottom while the app is open. It has a title, message, colour and an optional button (label + link). The app checks for a new alert about every 30 seconds. Each app has one alert at a time.
In-app alerts work whenever an App ID is entered. If you leave the App ID blank, the build log shows βNo Push App ID set β skipping in-app alert pollerβ.
Visual Builder
The Visual Builder lets you design a complete multi-page app by dragging blocks onto a phone-shaped canvas β no website required. The finished app is packed inside the APK and works offline (embedded videos still need internet).
The Visual Builder is a licensed feature. If you see π Locked, it is not included in your license.
Opening the builder
In Step 1, click π¨ Visual Builder, then Open Visual App Builder. A full-screen editor opens with three areas:
| Area | What it does |
|---|---|
| Left β Block library | All the blocks you can add, grouped by category. |
| Centre β Phone canvas | Your app as it will look. Page tabs and a theme bar sit above the phone. |
| Right β Properties | Select a block to edit its text, image, colours, spacing and click action. |
Building your app
Drag a block from the library onto the phone. To put a block inside a Card, Box, Row or Column, select that container and click a block in the library.
Click any block on the canvas, then change its settings on the right. Use Duplicate or Delete at the bottom of the panel, or press the Delete key.
Drag blocks on the canvas to reorder them.
Use the page tabs above the phone to add, rename or delete pages. Buttons and menus can link between pages.
In the theme bar choose Primary, BG (background) and Text colours and click Apply theme.
This generates your app and returns you to the wizard, where Step 1 now shows ββ Visual project readyβ. Continue with Steps 2β6 as normal. Your App Name and Package Name from Step 2 are used.
Available blocks
| Category | Blocks |
|---|---|
| Text | Heading, Paragraph |
| Media | Image, Image Card, Photo gallery, YouTube video |
| Layout | Divider, Spacer, Card, Box, Row (side by side), Column (stacked) |
| Navigation | Top Navigation, Bottom Navigation |
| Content | List, Header, Footer, Contact Info, FAQ accordion, PDF / document link, Price list / menu |
| Actions | Button, Website Link, Call Button, Email Button, Social media, WhatsApp button |
| Ads | Rewarded ad button, Credits counter |
Button and image actions
Buttons and images can do something when tapped. Choose it under Click action:
| Action | What happens |
|---|---|
| Go to screen | Opens another page of your app. |
| Open URL | Opens a web address. |
| Show message | Pops up a message you type. |
| Phone call | Starts a call to the number you enter. |
| Send email | Opens an email to the address you enter. |
| Watch rewarded ad | Plays a rewarded ad and awards credits (needs a Rewarded Ad Unit ID in Step 4). You can set the credit amount, a thank-you message and a page to open afterwards. |
Saving, undo and shortcuts
| Control | Use it to⦠|
|---|---|
| Undo / Redo (top bar) | Step backwards or forwards through your changes. Shortcuts: Ctrl+Z to undo, Ctrl+Y (or Ctrl+Shift+Z) to redo. |
| Save project / Open project (top bar) | Save your design to a file (.w2a.json) and open it again later. |
| β Back | Close the editor and return to the wizard. |
The main window's πΎ Save Project button also stores your Visual Builder design, so one file keeps everything together.
Saving Your Project
You don't have to start from scratch each time. Use the buttons at the top of the window:
| Button | What it does |
|---|---|
| πΎ Save Project | Saves all your wizard settings β and your Visual Builder design, if you have one β to a .wdbproj.json file. |
| π Open Project | Loads a saved project file and fills in the wizard for you. |
Passwords are never saved. Re-enter your Store Password and Key Password each time you open a project.
After opening a project, glance through each step before building β especially the permission buttons and the navigation menu items β to confirm everything looks as you left it.
Save a new project file each time you release an update. It is the easiest way to keep your version name, version code and settings together.
Your Output Files & Publishing
After a successful build, the π Your App Files card (Step 6) lists what was created. Files are saved in a new folder inside C:\Users\<you>\Web2APK-Builds, named after the build.
Click π Open in Folder next to a file to show it in Windows File Explorer. If you turned Fast Build Mode off, an Android Source entry for the full project is listed as well.
Installing the APK on your phone
Copy the .apk via USB cable, email it to yourself, or share it through Google Drive or WhatsApp.
On the phone go to Settings β Security (varies by brand) and enable Install unknown apps for your file manager or browser.
Open the file and follow the prompts. Your app then appears in the app drawer.
Uploading the AAB to Google Play
Visit play.google.com/console. There is a one-time registration fee of $25.
In the Play Console click Create app and fill in the name, language and type.
Go to Release β Production β Create new release, upload your .aab file and follow the steps to publish.
Google Play only accepts apps that target Android 16 (API 36). Keep Target Android Version on its default for any app you plan to publish.
Troubleshooting
Here are answers to the most common issues. Build problems appear as red lines in the build console on Step 6.
Common messages and fixes
| Message | What it means | How to fix |
|---|---|---|
| Please enter a Website URL. | Website URL is the chosen source but the field is empty. | Go to Step 1 and enter your address (or choose another source). |
| Please select your local HTML folder. | Local HTML Folder is chosen but no folder was picked. | Click Browse⦠in Step 1 and pick the folder with your index.html. |
| Open the Visual Builder and click βUse for APK buildβ first. | Visual Builder is chosen but no design has been sent to the build. | Open the builder and click Use for APK build. |
| Please enter an App Name. | The App Name field is empty. | Fill it in on Step 2. |
| Invalid package name | The Package Name has the wrong format. | Use lowercase letters, digits and underscores in at least two dot-separated parts, e.g. com.mycompany.myapp. |
| Select at least one build output | Both APK and AAB are un-ticked. | Tick at least one on Step 5 (locked outputs can't be used). |
| Store / Key password must be at least 6 characters | A password is missing or too short. | Enter at least 6 characters in both password fields on Step 5. |
| Please select your keystore file. | Use Existing is chosen but no file was picked. | Browse to your .jks / .keystore file. |
| Wrong keystore password | The Store Password doesn't match the keystore. | Re-enter the correct password. This also appears if an auto-generated keystore with the same alias already exists β use its original password or a new alias. |
| Alias ββ¦β not found in keystore | The Key Alias doesn't exist in that keystore file. | Correct the Key Alias on Step 5. |
| Your license is not active / β¦ is locked on your license | The license is missing or doesn't include that feature. | Activate the software, or untick/avoid the locked feature. |
| Missing tools / β components | Build tools aren't fully downloaded. | Click Manage Tools and run Download & Install Tools again. |
| Gradle β¦ failed | The Android build itself hit an error. | Scroll the console for the red βBUILD ERRORβ lines. Retry once; if it persists, check your internet connection and free disk space. |
When things don't work in the finished app
| Problem | Check |
|---|---|
| Ads don't appear | AdMob is switched on in Step 4 and all IDs are filled in. Brand-new AdMob units can take a while to start serving. |
| Notifications don't arrive | The App ID is correct, the Notifications permission is on, and the user has opened the app at least once so the phone is registered. |
| A page doesn't load in the app | The website works in a browser (use Preview) and the device has an internet connection. |
| Camera or file upload does nothing | File Upload Support and the Camera / Media permissions are on. |
General best practices
Right after your first successful build, use β¬οΈ Download Keystore and store the .jks file somewhere safe, like cloud storage.
Every update you publish needs a higher Version Code than the last (1 β 2 β 3). Never reuse one.
Always install and test the APK on a real phone before uploading the AAB to Play Store.
Replace the test IDs with your own before you publish.
Giving each app its own Key Alias keeps their signing keys separate and avoids password mix-ups.
Use πΎ Save Project after every build so updates are quick and consistent.
The Preview button in the footer opens your website URL in your normal browser, so you can double-check it before building.