Conversation
Adds .cursor/environment.json and an idempotent install script that provisions the Android SDK (cmdline-tools, platform android-37.0, build-tools 37.0.0), writes local.properties, and warms Gradle dependencies so ./gradlew build/test/detekt work out of the box. Co-authored-by: Somasundaram M <hi@msomu.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Sets up the Cloud Agent development environment for this Android/Kotlin project so
./gradlew build,test, anddetektwork out of the box.The base VM ships JDK 21 and Gradle (via the wrapper) but has no Android SDK, which the build requires. This PR adds:
.cursor/environment.json— declares the environment and runs the install script (repo-committed, so it is the highest-precedence environment source)..cursor/install.sh— an idempotent bootstrap that:/opt/android-sdk(only if missing),platform-tools,platforms;android-37.0(matchescompileSdk = 37), andbuild-tools;37.0.0,local.propertieswithsdk.dir(git-ignored, machine-specific),No application code is changed. JDK 21 is used as-is (AGP 9.3.1 + Gradle 9.7 support it), matching the base image.
Validation
./gradlew assembleDebugapp-debug.apk(~20 MB)./gradlew build(compile + lint + release)./gradlew test./gradlew detekt./gradlew build test detekt(full pre-commit gate)assembleDebug test detekt→ BUILD SUCCESSFULjsonplaceholder.typicode.comthrough the app's real Retrofit/OkHttp/serialization +RepositoryImplNote on running the GUI app
The Android app's UI requires an emulator. The x86_64 emulator needs hardware acceleration, but this VM's nested KVM raises a host-kernel
kvm_spurious_faulton vCPU creation (the guest never executes), and TCG software emulation is refused for x86_64 images. This is a host virtualization limitation, not fixable from inside the VM. To demonstrate the app actually runs, its core network/data flow was exercised against the live API on the JVM (see validation table).