mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
fix(build): add explicit compose-multiplatform-animation dependency (#5095)
This commit is contained in:
parent
17d85c88c4
commit
e424d4d076
6 changed files with 29 additions and 1 deletions
|
|
@ -62,10 +62,31 @@ Meshtastic-Android is a Kotlin Multiplatform (KMP) application for off-grid, dec
|
|||
datadogClientToken=dummy_token
|
||||
```
|
||||
|
||||
## 5. Troubleshooting
|
||||
## 5. Workspace Bootstrap (MUST run before any build)
|
||||
Agents **MUST** perform these steps automatically at the start of every session before running any Gradle task. Do not wait for the user to tell you.
|
||||
|
||||
1. **Android SDK:** `ANDROID_HOME` may not be set in agent workspaces. Detect and export it:
|
||||
```bash
|
||||
# Check common macOS/Linux locations in order of preference
|
||||
if [ -z "$ANDROID_HOME" ]; then
|
||||
for dir in "$HOME/Library/Android/sdk" "$HOME/Android/Sdk" "/opt/android-sdk"; do
|
||||
if [ -d "$dir" ]; then export ANDROID_HOME="$dir"; break; fi
|
||||
done
|
||||
fi
|
||||
```
|
||||
All `./gradlew` invocations must include `ANDROID_HOME` in the environment. If the SDK cannot be found, ask the user for the path.
|
||||
|
||||
2. **Proto submodule:** `core/proto/src/main/proto` is a Git submodule containing Protobuf definitions. It must be initialized or builds will fail with proto generation errors:
|
||||
```bash
|
||||
git submodule update --init
|
||||
```
|
||||
|
||||
## 6. Troubleshooting
|
||||
- **Build Failures:** Check `gradle/libs.versions.toml` for dependency conflicts.
|
||||
- **Missing Secrets:** Check `local.properties` (see Environment Setup above).
|
||||
- **JDK Version:** JDK 21 is required.
|
||||
- **SDK location not found:** See Workspace Bootstrap step 1 above.
|
||||
- **Proto generation failures:** See Workspace Bootstrap step 2 above.
|
||||
- **Configuration Cache:** Add `--no-configuration-cache` flag if cache-related issues persist.
|
||||
- **Koin Injection Failures:** Verify the KMP component is included in `app` root module wiring (`AppKoinModule`).
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ You are an expert Android and Kotlin Multiplatform (KMP) engineer working on Mes
|
|||
</context_and_memory>
|
||||
|
||||
<process>
|
||||
- **Workspace Bootstrap (MUST run first):** Before executing any Gradle task in a new workspace, agents MUST automatically:
|
||||
1. **Find the Android SDK** — `ANDROID_HOME` is often unset in agent worktrees. Probe `~/Library/Android/sdk`, `~/Android/Sdk`, and `/opt/android-sdk`. Export the first one found. If none exist, ask the user.
|
||||
2. **Init the proto submodule** — Run `git submodule update --init`. The `core/proto/src/main/proto` submodule contains Protobuf definitions required for builds.
|
||||
- **Think First:** Reason through the problem before writing code. For complex KMP tasks involving multiple modules or source sets, outline your approach step-by-step before executing.
|
||||
- **Plan Before Execution:** Use the git-ignored `.agent_plans/` directory to write markdown implementation plans (`plan.md`) and Mermaid diagrams (`.mmd`) for complex refactors before modifying code.
|
||||
- **Atomic Execution:** Follow your plan step-by-step. Do not jump ahead. Use TDD where feasible (write `commonTest` fakes first).
|
||||
|
|
|
|||
|
|
@ -243,6 +243,7 @@ dependencies {
|
|||
implementation(libs.jetbrains.compose.material3.adaptive.layout)
|
||||
implementation(libs.jetbrains.compose.material3.adaptive.navigation)
|
||||
implementation(libs.material)
|
||||
implementation(libs.compose.multiplatform.animation)
|
||||
implementation(libs.compose.multiplatform.material3)
|
||||
implementation(libs.compose.multiplatform.ui.tooling.preview)
|
||||
implementation(libs.compose.multiplatform.ui)
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ class KmpFeatureConventionPlugin : Plugin<Project> {
|
|||
extensions.configure<KotlinMultiplatformExtension> {
|
||||
sourceSets.getByName("commonMain").dependencies {
|
||||
// Compose Multiplatform UI
|
||||
implementation(libs.library("compose-multiplatform-animation"))
|
||||
implementation(libs.library("compose-multiplatform-material3"))
|
||||
|
||||
// Lifecycle & ViewModel (JetBrains KMP forks — safe in commonMain)
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ kotlin {
|
|||
implementation(projects.core.resources)
|
||||
implementation(projects.core.service)
|
||||
|
||||
implementation(libs.compose.multiplatform.animation)
|
||||
implementation(libs.compose.multiplatform.material3)
|
||||
implementation(libs.compose.multiplatform.ui)
|
||||
implementation(libs.compose.multiplatform.foundation)
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4
|
|||
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version = "1.11.0-rc01" }
|
||||
|
||||
# Compose Multiplatform
|
||||
compose-multiplatform-animation = { module = "org.jetbrains.compose.animation:animation", version.ref = "compose-multiplatform" }
|
||||
compose-multiplatform-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-multiplatform" }
|
||||
compose-multiplatform-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose-multiplatform" }
|
||||
compose-multiplatform-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "compose-multiplatform" }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue