Claude-skill-registry android-gradle

Automate Gradle tasks for Android projects - build, test, coverage, clean. Use when building APKs, running unit tests, generating coverage reports, or checking dependencies.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/android-gradle" ~/.claude/skills/majiayu000-claude-skill-registry-android-gradle && rm -rf "$T"
manifest: skills/data/android-gradle/SKILL.md
source content

Android Gradle Skill

Automate Gradle tasks for Android projects: build, test, coverage, clean.

When to Use

  • Building debug/release APK
  • Running unit tests
  • Generating coverage reports
  • Cleaning build cache
  • Checking dependencies

Commands

Build Commands

CommandDescriptionGradle Task
build
Build debug APK
./gradlew assembleDebug
build:release
Build release APK
./gradlew assembleRelease
install
Install to device
./gradlew installDebug
clean
Clean build cache
./gradlew clean
rebuild
Clean + build
./gradlew clean assembleDebug

Test Commands

CommandDescriptionGradle Task
test
Run all unit tests
./gradlew testDebugUnitTest
test:class
Run single class
./gradlew test --tests "*.ClassName"
test:method
Run single test
./gradlew test --tests "*.Class.method"

Coverage Commands

CommandDescriptionGradle Task
coverage
Full coverage report
./gradlew jacocoTestDebugUnitTestReport
coverage:verify
Enforce 80% minimum
./gradlew jacocoVerification

Dependency Commands

CommandDescriptionGradle Task
deps
Show dependency tree
./gradlew dependencies
deps:app
App module only
./gradlew :app:dependencies
outdated
Check outdated deps
./gradlew dependencyUpdates

Usage Examples

# Build and install debug APK
./gradlew assembleDebug && ./gradlew installDebug

# Run specific test class
./gradlew test --tests "*.GameManagerImplTest"

# Generate coverage report
./gradlew jacocoTestDebugUnitTestReport
# Report at: app/build/reports/jacoco/jacocoTestDebugUnitTestReport/html/index.html

# Clean rebuild
./gradlew clean assembleDebug

Timeout Configuration

Task TypeTimeout
assembleDebug2 min
testDebugUnitTest3 min
jacocoTestDebugUnitTestReport2 min
clean30 sec
dependencies30 sec

Version Compatibility

GradleAGPKotlinJDK
8.10+8.8+2.1+17+
8.5+8.5+2.0+17+
8.0+8.0+1.9+17+

Error Handling

// Handle build failures in scripts
fun handleGradleResult(exitCode: Int, output: String) {
    when {
        exitCode != 0 && output.contains("Compilation failed") ->
            println("Fix compilation errors in: ${extractErrorFiles(output)}")
        exitCode != 0 && output.contains("AAPT") ->
            println("Resource error - check XML files")
        exitCode != 0 && output.contains("OutOfMemoryError") ->
            println("Increase heap: org.gradle.jvmargs=-Xmx4g")
    }
}

Common Errors:

  • Build failure: Parse error message, check file:line references
  • Test failure: Run with
    --info
    for stack traces
  • Coverage below threshold: Check
    app/build/reports/jacoco/*/html/index.html
  • OOM: Increase heap in
    gradle.properties

Test Result Validation

# Run tests and validate results
./gradlew testDebugUnitTest && echo "✓ All tests passed" || echo "✗ Tests failed"

# Check coverage threshold
./gradlew jacocoTestDebugUnitTestReport
# Verify: app/build/reports/jacoco/jacocoTestDebugUnitTestReport/html/index.html
# Target: 80%+ line coverage

# Parse test results programmatically
cat app/build/test-results/testDebugUnitTest/*.xml | grep -E "(tests=|failures=)"

Troubleshooting

IssueSolution
Build hangsKill daemon:
./gradlew --stop
Cache issuesClean:
./gradlew clean cleanBuildCache
OOM errorsAdd to gradle.properties:
org.gradle.jvmargs=-Xmx4g
Version conflictForce resolution in build.gradle.kts
Slow buildsEnable:
org.gradle.parallel=true

Command Workflows

# Full CI workflow
./gradlew clean testDebugUnitTest jacocoTestDebugUnitTestReport assembleDebug

# Quick iteration
./gradlew assembleDebug -x lint -x test && ./gradlew installDebug

# Pre-commit check
./gradlew ktlintCheck testDebugUnitTest

CI/CD Integration

# GitHub Actions example
- name: Build & Test
  run: |
    ./gradlew testDebugUnitTest
    ./gradlew jacocoTestDebugUnitTestReport
    ./gradlew assembleDebug

- name: Upload Coverage
  uses: codecov/codecov-action@v4
  with:
    files: app/build/reports/jacoco/*/jacoco*.xml

Best Practices

  • Always use Gradle wrapper (
    ./gradlew
    ), never system Gradle
  • Use
    --parallel
    for multi-module projects
  • Enable configuration cache for faster builds
  • Skip lint with
    -x lint
    if not needed for quick iterations

References