-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
ENPAF has two installation layers:
-
The framework (the
enpafPython package +pafCLI) — needed to create, run, and build projects. - The build toolchain (JDK + Android SDK) — needed only when you actually build an APK. You can develop and preview in the browser without it.
Download enpaf-<version>-py3-none-any.whl from the
Releases page, then:
pip install enpaf-1.1.3-py3-none-any.whlgit clone https://github.com/aaalllexxx/enpaf.git
cd enpaf
pip install .
# or, for development (editable):
pip install -e ".[test]"This installs the runtime dependencies (Flask, Flask-SocketIO, Jinja2, watchdog,
rich, requests, qrcode, colorama) and puts the paf command on your PATH.
paf info # inside a project
paf --help # anywhere
python -c "import enpaf; print(enpaf.__version__)"Once installed, keep PAF current with the built-in command:
paf update # upgrade to the latest release on PyPI
paf update --pre # include pre-releasesIt shows your installed vs. the latest version and skips the upgrade if you're
already current. (Equivalent to pip install --upgrade enpaf.)
ENPAF builds APKs with Gradle 8.4 + Android Gradle Plugin 8.2 + Chaquopy 15.0.1. You need:
⚠️ Only JDK 17 through 21 work. Gradle 8.4 cannot run on JDK 22+. If your defaultjavais newer (e.g. JDK 25), ENPAF will try to auto-detect a usable JDK 17 from common install locations and pinJAVA_HOMEfor the build — but installing JDK 17 explicitly is the reliable path.
-
Download: Eclipse Temurin JDK 17
-
Then point
JAVA_HOMEat it, e.g. on Windows:setx JAVA_HOME "C:\Program Files\Eclipse Adoptium\jdk-17.0.x-hotspot"Open a new terminal afterwards.
Install Android Studio (which bundles the
SDK) or the command-line tools, then set ANDROID_HOME:
setx ANDROID_HOME "%LOCALAPPDATA%\Android\Sdk"ENPAF auto-detects the SDK in common locations (%LOCALAPPDATA%\Android\Sdk,
~/Library/Android/sdk, ~/Android/Sdk) if ANDROID_HOME isn't set.
paf doctorpaf doctor reports whether a compatible JDK and the Android SDK are found.
The framework is designed to work on Windows, even when your project lives inside a OneDrive folder. OneDrive's "Files On-Demand" turns files into read-only cloud placeholders and locks them during sync, which breaks Gradle's own delete steps. ENPAF works around this automatically:
- Project generation clears read-only bits before overwriting.
- The Gradle build is relocated outside OneDrive to
%LOCALAPPDATA%\enpaf\builds\<name>-<hash>(override withENPAF_BUILD_DIR). The final APK is still copied back to your project'sdist/.
See Troubleshooting for details.
The first paf build downloads the Gradle distribution and Android
dependencies, and Chaquopy assembles the Python runtime. Subsequent builds reuse
the Gradle cache and are much faster.
Next: Quick Start.
Getting started
Reference
- CLI Reference
- enpaf.json Configuration
- Python API
- JavaScript Bridge
- Storage
- Events
- Device Capabilities
Building & shipping
Project