docs/building.md
Set environment variables (recommended):
export ANDROID_HOME=/path/to/android/sdk
export ANDROID_NDK_HOME=/path/to/android/ndk/27.0.12077973
# Check environment and create local.properties
./gradlew setup
# Build SDK and all examples
./gradlew buildAll
Or open the project in Android Studio and wait for Gradle sync.
RunAnywhere (root)
├── :runanywhere-kotlin # KMP SDK (JVM + Android)
├── :runanywhere-core-llamacpp # LLM backend (optional)
├── :runanywhere-core-onnx # STT/TTS/VAD backend (optional)
├── RunAnywhereAI (composite) # Android example app
└── plugin (composite) # IntelliJ plugin example
./gradlew setup # Check environment + create local.properties
./gradlew buildSdk # Build debug AAR + JVM JAR
./gradlew buildSdkRelease # Build release AAR
./gradlew publishSdkToMavenLocal # Publish to ~/.m2/repository
./gradlew buildAndroidApp # Build debug APK
./gradlew runAndroidApp # Build, install, and launch on device
./gradlew buildIntellijPlugin # Publish SDK + build plugin
./gradlew runIntellijPlugin # Publish SDK + run plugin in sandbox
./gradlew buildAll # Setup + build SDK + all examples
./gradlew cleanAll # Clean all projects
Native libraries can be sourced in two ways, controlled by gradle.properties:
Downloads pre-built .so files from GitHub releases. No NDK required.
runanywhere.useLocalNatives=false
Builds native libraries from runanywhere-commons source. Requires NDK.
runanywhere.useLocalNatives=true
First-time local setup:
cd sdk/runanywhere-kotlin
./scripts/build-kotlin.sh --setup
To rebuild after C++ changes:
./gradlew :runanywhere-kotlin:rebuildCommons
| Artifact | Path |
|---|---|
| SDK AAR | sdk/runanywhere-kotlin/build/outputs/aar/ |
| SDK JVM JAR | sdk/runanywhere-kotlin/build/libs/ |
| Android APK | examples/android/RunAnywhereAI/app/build/outputs/apk/ |
| IntelliJ Plugin | examples/intellij-plugin-demo/plugin/build/distributions/ |
| Maven Local | ~/.m2/repository/com/runanywhere/runanywhere-sdk/ |
./gradlew setup
Remote mode:
./gradlew :runanywhere-kotlin:downloadJniLibs
Local mode:
cd sdk/runanywhere-kotlin && ./scripts/build-kotlin.sh --setup
./gradlew cleanAll && ./gradlew buildAll