Everything needed is free: a JDK, the Android SDK, and the Gradle wrapper that ships in the repository.
| Tool | Version |
|---|---|
| JDK | 17 or newer |
| Android SDK platform | 36 |
| Android Gradle Plugin | 8.13.1 |
| Gradle | 8.13, downloaded by ./gradlew |
| Kotlin | 2.0.21 |
| Minimum Android | 8.0, API 26 |
Tell Gradle where the SDK is with the ANDROID_HOME environment variable, or a local.properties file in the project root containing sdk.dir=/path/to/Android/sdk. Android Studio creates that file for you.
The APK is in app/build/outputs/apk/debug/. Install it with adb install or copy it to the phone.
A debug build is signed with your own debug key, which opensolr.com does not list in its assetlinks.json. After you approve the sign-in the browser shows Return to Opensolr Photos; tap its button and the sign-in finishes through opensolr-photos://auth.
Create signing.properties in the project root. It is git-ignored and must never be committed:
The APK is app/build/outputs/apk/release/app-release.apk, shrunk and signed. Without signing.properties the release APK is built unsigned.
The Gradle task solrConfigZip zips solr/conf into opensolr-photos-conf.zip on every build and adds it to the app's assets. IndexManager reads that asset when it uploads the configuration to an index. Change the schema in solr/conf; never edit a zip by hand.