From 0ab444b0b957bfd805eacba938b0ad4c28241add Mon Sep 17 00:00:00 2001 From: Joe Julian Date: Tue, 31 Mar 2026 21:37:19 -0700 Subject: [PATCH] Align Android build guidance with Gio --- APK.md | 9 ++++++++- Makefile | 2 +- main.go | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/APK.md b/APK.md index 355a832..89b442a 100644 --- a/APK.md +++ b/APK.md @@ -23,10 +23,17 @@ Installed machine prerequisites expected by this repo: - `android-sdk-build-tools` - `android-platform-35` - `android-sdk-platform-tools` -- JDK 17 or newer +- a working JDK install The repo tracks `gogio` as a Go tool, so the build runs through: ```sh go tool gogio -target android ... + +Note: + +- Gio's Android doc currently references Java 1.8, but the Android build-tools + installed on this machine (`d8` from build-tools 37) do not run on Java 8. +- In this environment, KeePassGO's APK build requires a newer JDK runtime on + `PATH`, which is why the repo defaults `JAVA_HOME` to `/usr/lib/jvm/java-25-openjdk`. ``` diff --git a/Makefile b/Makefile index 80647df..0aaa63c 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ ANDROID_TARGET_SDK ?= 35 .PHONY: apk apk: - @test -x "$(JAVA_HOME)/bin/java" || { echo "JAVA_HOME must point to a JDK 17+ install"; exit 1; } + @test -x "$(JAVA_HOME)/bin/java" || { echo "JAVA_HOME must point to a working JDK install"; exit 1; } @test -d "$(ANDROID_SDK_ROOT)" || { echo "ANDROID_SDK_ROOT must point to an Android SDK install"; exit 1; } @test -d "$(ANDROID_NDK_ROOT)" || { echo "ANDROID_NDK_ROOT must point to an Android NDK install"; exit 1; } @test -x "$(ANDROID_SDK_ROOT)/cmdline-tools/latest/bin/sdkmanager" || { echo "Android SDK cmdline-tools are missing"; exit 1; } diff --git a/main.go b/main.go index 127ae9d..9741d21 100644 --- a/main.go +++ b/main.go @@ -1657,7 +1657,7 @@ func (u *ui) noteCurrentVaultPath() { func (u *ui) layout(gtx layout.Context) layout.Dimensions { // Clear the full frame explicitly so mobile surfaces don't start from an // unpainted black buffer before nested background widgets run. - paint.Fill(gtx.Ops, bgColor) + paint.FillShape(gtx.Ops, bgColor, clip.Rect{Max: gtx.Constraints.Max}.Op()) u.syncHostedAPI() u.filter() u.processShortcuts(gtx)