diff --git a/cmd/fyne/internal/mobile/binres/binres.go b/cmd/fyne/internal/mobile/binres/binres.go index a4cda8cc71..68dfe5a8c7 100644 --- a/cmd/fyne/internal/mobile/binres/binres.go +++ b/cmd/fyne/internal/mobile/binres/binres.go @@ -483,6 +483,24 @@ func resolveElements(elms []*Element, pool, bxPool *Pool) { b := el.attrs[j].Name.Resolve(bxPool) return a < b }) + } else if el.Name.Resolve(bxPool) == "activity" { + // As above the android manifest seems to be very delicate - name must be first then exported before configChanges + sort.Slice(el.attrs, func(i, j int) bool { + a := el.attrs[i].Name.Resolve(bxPool) + if a == "name" { + return true + } + + b := el.attrs[j].Name.Resolve(bxPool) + if a == "exported" { + return b != "name" + } + + if b == "name" { + return false + } + return a < b + }) } for _, child := range el.Children { diff --git a/cmd/fyne/internal/mobile/build.go b/cmd/fyne/internal/mobile/build.go index c6f7d775a6..4b115fa364 100644 --- a/cmd/fyne/internal/mobile/build.go +++ b/cmd/fyne/internal/mobile/build.go @@ -150,7 +150,7 @@ func runBuildImpl(cmd *command) (*packages.Package, error) { } return pkg, nil } - target := 31 + target := 33 if !buildRelease { target = 29 // TODO once we have gomobile debug signing working for v2 android signs }