#!/bin/bash # Android Development Environment Setup for Jan # Ensure rustup's Rust toolchain is used instead of Homebrew's export PATH="$HOME/.cargo/bin:$PATH" # Set JAVA_HOME for Android builds export JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH" export ANDROID_HOME=~/Library/Android/sdk export ANDROID_NDK_ROOT=~/Library/Android/sdk/ndk/29.0.14033849 export NDK_HOME=~/Library/Android/sdk/ndk/29.0.14033849 # Add Android tools to PATH export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator:$NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin # Set up CC and CXX for Android compilation export CC_aarch64_linux_android=$NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang export CXX_aarch64_linux_android=$NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++ export AR_aarch64_linux_android=$NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar export RANLIB_aarch64_linux_android=$NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib # Create symlinks for Android tools if they don't exist mkdir -p ~/.local/bin if [ ! -f ~/.local/bin/aarch64-linux-android-ranlib ]; then ln -sf $NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib ~/.local/bin/aarch64-linux-android-ranlib fi export PATH="$HOME/.local/bin:$PATH" echo "Android environment configured:" echo "ANDROID_HOME: $ANDROID_HOME" echo "ANDROID_NDK_ROOT: $ANDROID_NDK_ROOT" echo "PATH includes NDK toolchain: $(echo $PATH | grep -o "ndk.*bin" || echo "NOT FOUND")" # Verify required tools echo -e "\nChecking required tools:" which adb && echo "✅ adb found" || echo "❌ adb not found" which emulator && echo "✅ emulator found" || echo "❌ emulator not found" which $CC_aarch64_linux_android && echo "✅ Android clang found" || echo "❌ Android clang not found" # Show available AVDs echo -e "\nAvailable Android Virtual Devices:" emulator -list-avds 2>/dev/null || echo "No AVDs found" # Execute the provided command if [ "$1" ]; then echo -e "\nExecuting: $@" exec "$@" fi