Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ node
yarn
pnpm

# Java (for Android/Gradle)
temurin
# Java (for Android/Gradle; React Native pins a JDK 17 toolchain)
temurin@17

# Python (for various tooling)
python@3.12
Expand Down
12 changes: 7 additions & 5 deletions app-setup/android-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#
# Prerequisites:
# - android-commandlinetools installed via Homebrew
# - Java (temurin) installed via Homebrew
# - Java 17 (temurin@17) installed via Homebrew
#
# Usage: ./android-setup.sh [--force]
# --force: Skip confirmation prompts
Expand Down Expand Up @@ -133,14 +133,16 @@ main() {

# Verify Java is available
section "Verifying Java Installation"
if ! command -v java &>/dev/null; then
collect_error "Java not found - install temurin via Homebrew first (check formulae.txt)"
# --failfast: without it, java_home returns the newest JDK, exit 0, when no 17 is installed.
local java17_home
if ! java17_home="$(/usr/libexec/java_home --failfast -v 17 2>/dev/null)"; then
collect_error "JDK 17 not found - install temurin@17 via Homebrew first (check casks.txt)"
exit 1
fi

local java_version
java_version="$(java -version 2>&1 | head -n 1)"
show_log "Java: ${java_version}"
java_version="$("${java17_home}/bin/java" -version 2>&1 | head -n 1)"
show_log "Java 17: ${java_version} (${java17_home})"

# Determine ANDROID_HOME
section "Configuring ANDROID_HOME"
Expand Down
4 changes: 3 additions & 1 deletion config/casks.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Development
android-studio
android-commandlinetools
temurin
# React Native compiles every Android module with a JDK 17 toolchain
# (jvmToolchain(17) in its Gradle plugin), so 17 must be installed.
temurin@17

# Terminal
iterm2
Expand Down
Loading