Generate clean, testable FTC robot projects with proper separation from SDK bloat. Features: - Composite build setup - one shared SDK, multiple clean projects - Subsystem pattern with hardware interfaces for easy testing - JUnit scaffolding - tests run on PC without robot - Minimal project structure (~50KB vs 200MB SDK) - Support for multiple FTC SDK versions Philosophy: Your code should be YOUR code. SDK is just a dependency. Built by Nexus Workshops for FTC teams tired of fighting the standard structure. License: MIT
109 lines
2.1 KiB
Markdown
109 lines
2.1 KiB
Markdown
# Troubleshooting
|
|
|
|
## Error: "Project with path ':RobotCore' not found"
|
|
|
|
**Symptom:**
|
|
```
|
|
FAILURE: Build failed with an exception.
|
|
* What went wrong:
|
|
Project with path ':RobotCore' not found in build ':ftc-sdk'.
|
|
```
|
|
|
|
**Cause:** FTC SDK was not cloned or is at wrong location.
|
|
|
|
**Solution:**
|
|
|
|
1. Check if SDK exists:
|
|
```bash
|
|
ls ~/ftc-sdk
|
|
# Should show: FtcRobotController, RobotCore, Hardware, etc.
|
|
```
|
|
|
|
2. If SDK doesn't exist, clone it:
|
|
```bash
|
|
git clone --depth 1 --branch v10.1.1 \
|
|
https://github.com/FIRST-Tech-Challenge/FtcRobotController.git \
|
|
~/ftc-sdk
|
|
```
|
|
|
|
3. Check your project's `gradle.properties`:
|
|
```bash
|
|
cat gradle.properties
|
|
# Should show: ftcSdkDir=/home/yourusername/ftc-sdk
|
|
```
|
|
|
|
4. Update if path is wrong:
|
|
```bash
|
|
echo "ftcSdkDir=$HOME/ftc-sdk" > gradle.properties
|
|
```
|
|
|
|
5. Try again:
|
|
```bash
|
|
./gradlew test
|
|
```
|
|
|
|
## Error: Can't find SDK at specified path
|
|
|
|
**Solution:** Set environment variable:
|
|
```bash
|
|
export FTC_SDK_DIR=~/ftc-sdk
|
|
./gradlew test
|
|
```
|
|
|
|
Or edit `gradle.properties` in your project.
|
|
|
|
## SDK exists but wrong version
|
|
|
|
**Solution:** Update SDK to correct version:
|
|
```bash
|
|
cd ~/ftc-sdk
|
|
git fetch --tags
|
|
git checkout v10.1.1 # or whatever version you need
|
|
```
|
|
|
|
## Fresh Start
|
|
|
|
If all else fails:
|
|
|
|
```bash
|
|
# Remove old SDK
|
|
rm -rf ~/ftc-sdk
|
|
|
|
# Remove old project
|
|
rm -rf my-project
|
|
|
|
# Start fresh
|
|
ftc-new-project my-project
|
|
|
|
# Verify SDK was cloned
|
|
ls ~/ftc-sdk
|
|
|
|
# Test
|
|
cd my-project
|
|
./gradlew test
|
|
```
|
|
|
|
## Verify Setup
|
|
|
|
Run this diagnostic:
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
echo "=== FTC Setup Diagnostic ==="
|
|
echo ""
|
|
echo "1. SDK Directory:"
|
|
ls -la ~/ftc-sdk 2>/dev/null || echo " ✗ SDK not found at ~/ftc-sdk"
|
|
echo ""
|
|
echo "2. SDK Modules:"
|
|
ls ~/ftc-sdk/RobotCore 2>/dev/null && echo " ✓ RobotCore found" || echo " ✗ RobotCore missing"
|
|
ls ~/ftc-sdk/Hardware 2>/dev/null && echo " ✓ Hardware found" || echo " ✗ Hardware missing"
|
|
echo ""
|
|
echo "3. Project gradle.properties:"
|
|
cat gradle.properties 2>/dev/null || echo " ✗ No gradle.properties in current dir"
|
|
echo ""
|
|
echo "4. Environment:"
|
|
echo " FTC_SDK_DIR=$FTC_SDK_DIR"
|
|
```
|
|
|
|
Save as `check-setup.sh` and run it in your project directory.
|