Skip to content

Instantly share code, notes, and snippets.

@clayote
Last active May 13, 2025 17:42
Show Gist options
  • Save clayote/60bd4ea73fdd2a128d520a25c4410af5 to your computer and use it in GitHub Desktop.
Save clayote/60bd4ea73fdd2a128d520a25c4410af5 to your computer and use it in GitHub Desktop.
More logs of p4a#3153 test code
[INFO ] Logger: Record log in /data/user/0/org.kivy.test/files/app/.kivy/logs/kivy_25-05-14_0.txt
[DEBUG ] Config: Upgrading from 0 to 1
[WARNING] Config: Upgrading configuration in progress.
[WARNING] Config: Older configuration version detected (0 instead of 27)
[ERROR ] Error when copying logo directory
Traceback (most recent call last):
File "/home/sanotehu/src/doublequeue-test/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/test/arm64-v8a/kivy/__init__.py", line 372, in <module>
File "/home/sanotehu/src/doublequeue-test/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/python3/arm64-v8a__ndk_target_21/python3/Lib/shutil.py", line 561, in copytree
File "/home/sanotehu/src/doublequeue-test/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/python3/arm64-v8a__ndk_target_21/python3/Lib/shutil.py", line 515, in _copytree
shutil.Error: [('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-128.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-128.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-128.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-16.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-16.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-16.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-24.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-24.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-24.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-256.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-256.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-256.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-32.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-32.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-32.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-48.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-48.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-48.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-512.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-512.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-512.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-64.ico', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-64.ico', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-64.ico'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo/kivy-icon-64.png', '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-64.png', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon/kivy-icon-64.png'"), ('/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/logo', '/data/user/0/org.kivy.test/files/app/.kivy/icon', "[Errno 13] Permission denied: '/data/user/0/org.kivy.test/files/app/.kivy/icon'")]
[INFO ] Kivy: v2.3.1
[INFO ] Kivy: Installed at "/data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
[INFO ] Python: v3.11.5 (main, May 13 2025, 03:38:32) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0
[INFO ] Python: Interpreter at ""
[INFO ] Logger: Purge log fired. Processing...
[INFO ] Logger: Purge finished!
[INFO ] Factory: 195 symbols loaded
[INFO ] Image: Providers: img_tex, img_dds, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO ] Text: Provider: sdl2
[DEBUG ] App: Loading kv <./tiny.kv>
[DEBUG ] App: kv <./tiny.kv> not found
[INFO ] Window: Provider: sdl2
[INFO ] GL: Using the "OpenGL ES 2" graphics system
[INFO ] GL: Backend used <sdl2>
[INFO ] GL: OpenGL version <b'OpenGL ES 3.2 v1.r38p1'>
[INFO ] GL: OpenGL vendor <b'ARM'>
[INFO ] GL: OpenGL renderer <b'Mali-G57 MC2'>
[INFO ] GL: OpenGL parsed version: 3, 2
[INFO ] GL: Texture max size <16383>
[INFO ] GL: Texture max units <64>
[DEBUG ] Shader: Fragment compiled successfully
[DEBUG ] Shader: Vertex compiled successfully
[DEBUG ] ImageSDL2: Load </data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/glsl/default.png>
[INFO ] Window: auto add sdl2 input provider
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[DEBUG ] autoclass(org.renpy.android.Hardware) intf False hierarchy is [(<Class: java.lang.Object at 0x6e6e1f3290>, 1), (<Class: org.renpy.android.Hardware at 0x6e6e1f0110>, 0)]
# pyjnius logspam was here
[DEBUG ] Resource: add </system/fonts> in path list
[DEBUG ] Resource: add </data/user/0/org.kivy.test/files/app/_python_bundle/site-packages/kivy/data/fonts> in path list
[DEBUG ] on_start called 1 times
[DEBUG ] put into queue: ('echo', ('begin', 0))
[DEBUG ] Putting into output queue: ('begin', 0)
[DEBUG ] put into queue: (None,)
[DEBUG ] Putting into output queue: []
[DEBUG ] put into queue: ('echo', ('end', 0))
[DEBUG ] Putting into output queue: ('end', 0)
[DEBUG ] put into queue: ('echo', ('begin', 1))
[DEBUG ] Putting into output queue: ('begin', 1)
[DEBUG ] put into queue: (None,)
[DEBUG ] Putting into output queue: []
[DEBUG ] put into queue: ('echo', ('end', 1))
[DEBUG ] Putting into output queue: ('end', 1)
[DEBUG ] put into queue: ('echo', ('begin', 2))
[DEBUG ] Putting into output queue: ('begin', 2)
[DEBUG ] put into queue: (None,)
[DEBUG ] Putting into output queue: []
[DEBUG ] put into queue: ('echo', ('end', 2))
[DEBUG ] Putting into output queue: ('end', 2)
[DEBUG ] put into queue: ('echo', ('begin', 3))
[DEBUG ] Putting into output queue: ('begin', 3)
[DEBUG ] put into queue: (None,)
[DEBUG ] Putting into output queue: []
[DEBUG ] put into queue: ('echo', ('end', 3))
[DEBUG ] Putting into output queue: ('end', 3)
[DEBUG ] put into queue: ('echo', ('begin', 4))
[DEBUG ] Putting into output queue: ('begin', 4)
[DEBUG ] put into queue: (None,)
[DEBUG ] Putting into output queue: []
[DEBUG ] put into queue: ('echo', ('end', 4))
[DEBUG ] Putting into output queue: ('end', 4)
[DEBUG ] put into queue: ('echo', ('begin', 5))
[DEBUG ] Putting into output queue: ('begin', 5)
[DEBUG ] put into queue: (None,)
[DEBUG ] Putting into output queue: []
[DEBUG ] put into queue: ('echo', ('end', 5))
[DEBUG ] Putting into output queue: ('end', 5)
[DEBUG ] Base: Create provider from android
[WARNING] Base: Unknown <android> provider
[INFO ] Base: Start application main loop
[INFO ] GL: NPOT texture support is available
[DEBUG ] read called 1 times
[ERROR ] outq should be empty, but isn't. Here's what's in it:
[ERROR ] ('begin', 4)
[ERROR ] []
[ERROR ] ('end', 4)
[ERROR ] ('begin', 5)
[ERROR ] []
[ERROR ] ('end', 5)
[WARNING] Base: Failed to import "android" module. Could not remove android presplash.
import sys
from queue import SimpleQueue
from threading import Thread
from kivy.app import App
from kivy.clock import Clock
from kivy.logger import Logger
from kivy.uix.label import Label
DATA = [[], [], [], [], [], []]
def subthread(inq, outq):
it = iter(DATA)
while True:
inst = inq.get()
if inst[0] == "echo":
Logger.debug(f"Putting into output queue: {inst[1]}")
outq.put(inst[1])
else:
obj = next(it)
Logger.debug(f"Putting into output queue: {obj}")
outq.put(obj)
class TinyApp(App):
count_on_start = 0
count_read = 0
def on_start(self):
self.count_on_start += 1
Logger.debug(f"on_start called {self.count_on_start} times")
self.inq = inq = SimpleQueue()
self.outq = outq = SimpleQueue()
thread = Thread(target=subthread, args=[inq, outq], daemon=True)
thread.start()
for i in range(6):
inq.put(("echo", ("begin", i)))
Logger.debug(f'put into queue: {("echo", ("begin", i))}')
inq.put((None,))
Logger.debug(f'put into queue: {(None,)}')
inq.put(("echo", ("end", i)))
Logger.debug(f'put into queue: {("echo", ("end", i))}')
Clock.schedule_once(self.read, 0.1)
def read(self, *_):
self.count_read += 1
Logger.debug(f"read called {self.count_read} times")
outq = self.outq
for i in range(6):
assert outq.get() == ("begin", i)
got = outq.get()
assert isinstance(got, list)
got = outq.get()
assert got == ("end", i)
if outq.qsize() != 0:
msg = "outq should be empty, but isn't. Here's what's in it:"
Logger.error("outq should be empty, but isn't. Here's what's in it:")
while outq.qsize() != 0:
got = outq.get()
msg += "\n" + repr(got)
Logger.error(got)
self.label.text = msg
return
Logger.info("Everything worked")
self.label.text = "OK"
def build(self):
self.label = Label(text="Working...")
return self.label
if __name__ == "__main__":
Logger.setLevel(10)
app = TinyApp()
app.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment