# 🔧 Android Build Environment Setup Guide

## Current Status ✅❌

| Component | Status | Action |
|-----------|--------|--------|
| **Cordova Android Platform** | ✅ Fixed | Reinstalled cordova-android@12.0.1 |
| **Printer Plugin** | ✅ Installed | cordova-plugin-printer@0.8.0 |
| **Java JDK** | ✅ Installed | 25.0.2 |
| **Android SDK** | ✅ Installed | Present |
| **Android Target SDK** | ❌ Missing | Need SDK 33 |
| **Gradle** | ❌ Missing | Need to install |

---

## 🚀 Quick Fix (3 Steps)

### **Step 1: Download Android Studio**
If you don't have Android Studio installed with SDK 33:

1. Download from: https://developer.android.com/studio
2. Install Android Studio
3. Open Android Studio → SDK Manager → Install:
   - Android SDK 33 (API level 33)
   - Android SDK Build-Tools 33.x
   - Android Emulator (optional)

### **Step 2: Set Environment Variables**
Add these to your `~/.zshrc` or `~/.bash_profile`:

```bash
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools

# Gradle (if not included with Android Studio)
export GRADLE_USER_HOME=$HOME/.gradle
```

Then reload shell:
```bash
source ~/.zshrc
```

### **Step 3: Verify Installation**
```bash
cd "/Applications/XAMPP/xamppfiles/htdocs/Android Photo App"
cordova requirements android
```

You should see:
```
✓ Java JDK: installed
✓ Android SDK: installed
✓ Android target: installed
✓ Gradle: installed
```

---

## 📦 Detailed Steps: Android Studio Setup

### **1. Install Android Studio**
```bash
# Using Homebrew (recommended)
brew install android-studio

# Or download manually from:
# https://developer.android.com/studio
```

### **2. Configure Android Studio**
1. Open Android Studio
2. Click **Android Studio** → **Preferences** (or **Settings** on Windows)
3. Go to **Appearance & Behavior** → **System Settings** → **Android SDK**
4. Under **SDK Platforms** tab, check:
   - ✅ Android 13 (API 33)
   - ✅ Android 12 (API 32) - optional, for compatibility
5. Under **SDK Tools** tab, check:
   - ✅ Android SDK Build-Tools (latest)
   - ✅ Android Emulator
   - ✅ Android SDK Platform-Tools
6. Click **Apply** → **OK**

### **3. Locate Android SDK**
Usually installed at:
```
/Users/YOUR_USERNAME/Library/Android/sdk
```

Verify it exists:
```bash
ls ~/Library/Android/sdk/
```

### **4. Configure Gradle**
Gradle comes with Android Studio. To verify:
```bash
ls ~/Library/Android/sdk/gradle/
```

### **5. Set Environment Variables**
Edit `~/.zshrc` (or `~/.bash_profile` for older Macs):

```bash
# Add these lines at the end
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator
```

Reload configuration:
```bash
source ~/.zshrc
```

Verify:
```bash
echo $ANDROID_HOME
# Should output: /Users/YOUR_USERNAME/Library/Android/sdk
```

---

## ✅ Verify Everything Works

### **Check Requirements**
```bash
cd "/Applications/XAMPP/xamppfiles/htdocs/Android Photo App"
cordova requirements android
```

### **Expected Output (All Passing)**
```
Requirements check results for android:
Java JDK: installed 25.0.2
Android SDK: installed true
Android target: installed android-33
Gradle: installed 8.1.1

All requirements check passed!
```

### **If Still Failing**

**Check Android SDK Location:**
```bash
# Look for SDK Manager
find ~/Library -name "sdkmanager" -type f

# Or check these locations:
ls ~/Library/Android/sdk/cmdline-tools/latest/bin/
```

**Verify SDK 33 is installed:**
```bash
ls ~/Library/Android/sdk/platforms/ | grep android-33
# Should show: android-33
```

**Test Gradle:**
```bash
gradle --version
# or
./gradlew --version
```

---

## 🔨 Build Your APK

Once all requirements pass:

### **Debug APK (for testing)**
```bash
cd "/Applications/XAMPP/xamppfiles/htdocs/Android Photo App"
npm run cordova-build
```

### **Release APK (for Google Play)**
```bash
npm run cordova-build-apk
```

---

## 🐛 Troubleshooting

### **Error: "Gradle: not installed"**
```bash
# Solution 1: Install Gradle via Homebrew
brew install gradle

# Solution 2: Use Gradle from Android Studio
export PATH=$PATH:$HOME/Library/Android/sdk/gradle
```

### **Error: "Android target: not installed"**
```bash
# Open Android Studio SDK Manager and install SDK 33
# Or via command line:
$HOME/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-33"
```

### **Error: "avdmanager not found"**
```bash
export PATH=$PATH:$HOME/Library/Android/sdk/tools/bin
```

### **Still Getting Api.js Error?**
```bash
# Try this:
cordova platform update android
cordova requirements android
```

---

## 📋 Final Checklist

- [ ] Android Studio installed
- [ ] SDK 33 (API 33) installed in Android Studio
- [ ] Android SDK Build-Tools 33.x installed
- [ ] ANDROID_HOME environment variable set
- [ ] Gradle installed or available in Android Studio
- [ ] `cordova requirements android` shows all ✓
- [ ] Test build: `npm run cordova-build`

---

## 🎯 Next Steps

Once requirements pass, run:

```bash
cd "/Applications/XAMPP/xamppfiles/htdocs/Android Photo App"

# Build debug APK
npm run cordova-build

# Or release APK
npm run cordova-build-apk

# Install on device
adb install -r platforms/android/build/outputs/apk/debug/app-debug.apk
```

