python_depends was emptied too aggressively in an earlier fix (dodging the requests/charset-normalizer Android-wheel bug) and took filetype with it — kivy/core/image imports it directly, causing a startup crash. Restored just filetype (pure Python, no dependency chain, safe). Settings popup's info label set text_size=(self.width, None) at __init__ time, before layout ever runs — self was the Popup at its default ~100px pre-layout width, not its real on-screen size, so the label rendered as a 1-character-wide column. Now binds text_size to the label's own width so it updates once real layout happens.
40 lines
1.5 KiB
INI
40 lines
1.5 KiB
INI
[app]
|
|
title = Event Tracker
|
|
package.name = eventtracker
|
|
package.domain = net.tastech
|
|
|
|
source.dir = .
|
|
source.include_exts = py
|
|
version = 0.1
|
|
|
|
requirements = python3,kivy
|
|
|
|
# Upstream p4a's kivy recipe declares python_depends on requests/certifi/
|
|
# chardet/idna/urllib3/filetype — mostly kivy.network.UrlRequest extras we
|
|
# never call, EXCEPT filetype, which kivy/core/image imports directly for
|
|
# real (confirmed by a startup crash when it was dropped too). p4a-recipes/
|
|
# kivy is a copy of that recipe keeping only filetype. It's not just
|
|
# cleanup: requests pulls in charset-normalizer, whose newest release
|
|
# ships an Android-tagged wheel; p4a's dependency resolver pins that exact
|
|
# wheel into requirements.txt, then installs it with a plain host pip that
|
|
# has no idea it's an Android wheel, and the build dies on "not a
|
|
# supported wheel on this platform". Dropping the unused requests chain
|
|
# avoids the bug entirely instead of chasing version pins — filetype has
|
|
# no such transitive dependency and installs cleanly on its own.
|
|
p4a.local_recipes = p4a-recipes
|
|
|
|
orientation = portrait
|
|
fullscreen = 0
|
|
|
|
# broad file access is required to reach whatever folder FolderSync/DAVx5
|
|
# is syncing into — that folder is picked by the user at runtime (Settings),
|
|
# not fixed at build time, so scoped storage APIs alone aren't enough
|
|
android.permissions = READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE,MANAGE_EXTERNAL_STORAGE
|
|
|
|
android.api = 33
|
|
android.minapi = 24
|
|
android.archs = arm64-v8a
|
|
|
|
[buildozer]
|
|
log_level = 2
|
|
warn_on_root = 1
|