Skip to content

docs(contributing): document Android SDK location for components build - #11490

Open
khaledhaltam wants to merge 1 commit into
thunderbird:mainfrom
khaledhaltam:fix-issue-11485
Open

docs(contributing): document Android SDK location for components build#11490
khaledhaltam wants to merge 1 commit into
thunderbird:mainfrom
khaledhaltam:fix-issue-11485

Conversation

@khaledhaltam

@khaledhaltam khaledhaltam commented Sep 3, 2026

Copy link
Copy Markdown

Contribution Summary

Linked Issue/Ticket: Resolves #11485
RFC / Technical Design (if applicable): n/a

Description

Adds a troubleshooting step to the development environment guide.

Android Studio writes sdk.dir only into the local.properties in the repository root. Since components/ is a separate included build, it does not read that file, so the initial Gradle sync and any build touching components/ fail with SDK location not found.

The new step says where to find the SDK path in Android Studio, names both ways to provide it, points out that the file may have to be created, and gives the path to the Gradle user properties file per operating system.

Reproduced by all three of us on our own machines, two on macOS and one on Windows. Verified on macOS on commit e8c9345, with a cleared configuration cache and no ANDROID_HOME set: without either setting :components:ui:bolt:compileAndroidMain fails, with systemProp.android.home in ~/.gradle/gradle.properties or sdk.dir in components/local.properties a full :app-thunderbird:assembleFossDebug succeeds.

Gradle tasks run on this branch: ./gradlew check and ./gradlew spotlessFlexmarkCheck, both pass. Not run: ./gradlew connectedAndroidTest, no device available; the change touches one Markdown file, so no instrumented tests are affected.

Risks and trade-offs

Documentation only, no code or build behaviour changes. The underlying cause could alternatively be fixed in the build itself by propagating sdk.dir from the root local.properties into the components build via the android.home system property. That was tested locally and works, but it mutates global JVM state in the Gradle daemon, so it is left to the maintainers to decide whether they prefer that over documenting the manual step.

Verified on macOS only. systemProp.android.home is listed first but has not been confirmed on Windows or Linux.

Screen Shots

n/a, documentation only.

AI Disclosure

Select one of the following (mandatory)

  • This contribution does not include any changes created or assisted by AI.
  • This contribution includes changes assisted by AI.
  • This contribution includes changes created by AI.

Contribution Checklist

  • I have read and affirm that my contribution adheres to Mozilla's Community Participation Guidelines
  • This contribution is in Kotlin where possible
  • This contribution does not use merge commits
  • This contribution adheres to the existing codestyle
  • This contribution does not break existing unit tests
  • This contribution includes tests for any new functionality, and maintains tests for any updated functionality
  • This contribution adheres to our Engineering process (RFC/Technical Design/ADR)
  • This PR has a descriptive title and body that accurately outlines all changes made, and contains a reference to any issues that it fixes

Explain that the components/ included build needs its own SDK location.
List both ways to provide it and the Windows path escaping rule.
Add it as a troubleshooting step where the sync failure appears.

Fixes thunderbird#11485
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Validation Passed: All report and feature-flag labels are correctly set.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The change is documentation-only, aligns with the reported issue, and introduces no code or build-logic risk.

Pull request overview

This PR updates the contributor development environment guide to document how to resolve Gradle sync/build failures caused by the components/ included build not seeing the Android SDK location configured in the repository root.

Changes:

  • Adds a troubleshooting section for the SDK location not found sync error specific to the components/ included build.
  • Documents where to find the SDK path in Android Studio and how to configure it via either global Gradle user properties or components/local.properties.
  • Adds OS-specific locations for the Gradle user gradle.properties file and notes about Windows path escaping in .properties files.
File summaries
File Description
docs/contributing/development-environment.md Adds a targeted troubleshooting step explaining how to set the Android SDK path for the components/ included build to avoid sync/build failures.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@khaledhaltam

Copy link
Copy Markdown
Author

The require-report-label check is failing because I don't have permission to set labels on this repository.

This is contributor documentation only, with no user-facing change, so report: exclude looks like the right category to me. Could someone with triage rights add it?

@rafaeltonholo rafaeltonholo added the report: exclude Exclude changes from user-facing reports (internal, minor, or not relevant to users). label Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

report: exclude Exclude changes from user-facing reports (internal, minor, or not relevant to users).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Documentation is missing the Android SDK location setup for the components/ included build

4 participants