Traceback (most recent call last):
File "kivy/properties.pyx", line 961, in kivy.properties.ObservableDict.__getattr__
KeyError: '_left_container'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/content/.buildozer/android/app/main.py", line 98, in <module>
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/app.py", line 955, in run
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/app.py", line 925, in _run_prepare
File "/content/.buildozer/android/app/main.py", line 75, in build
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/lang/builder.py", line 407, in load_string
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/lang/builder.py", line 662, in _apply_rule
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/lang/builder.py", line 662, in _apply_rule
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/lang/builder.py", line 660, in _apply_rule
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/uix/widget.py", line 470, in apply_class_lang_rules
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/lang/builder.py", line 540, in apply
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivy/lang/builder.py", line 659, in _apply_rule
File "/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/kivymd/uix/list/list.py", line 1206, in add_widget
File "kivy/properties.pyx", line 964, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'. Did you mean: '__setattr__'?
Python for android ended.
这是一个小应用程序,您可以在其中选择项目然后将它们发送到服务器
main.py:
import requests
import json
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.toast import toast
KV = """
<CB@TwoLineAvatarIconListItem>:
IconLeftWidget:
id: i1
icon: "pencil"
IconRightWidget:
icon: "pencil" #this is a transparent png image of 188 bytes
MDCheckbox:
id: x54
on_active:
app.save_checked(*args,root.text,root.secondary_text,root.ids.i1.icon,root)
BoxLayout:
size_hint:[.8, .9]
ScrollView:
MDList:
id: scroll
CB:
text: "box"
secondary_text: "1"
icon: "pencil"
CB:
text: "garbage"
secondary_text: "2"
icon: "pencil"
CB:
text: "car"
secondary_text: "3"
icon: "pencil"
MDRaisedButton:
id: cm
text: "Save"
on_release: app.send()
"""
class MainApp(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.data = []
def build(self):
return Builder.load_string(KV)
def save_checked(self, checkbox, value, a, b, c, w):
# a - text
# b - secondary_text
# value - state(True/False) on and off
# c - icon
# checkbox and w idk, just kivy args
if value:
print(checkbox, value, a, b, c, w)
self.data.append(b)
else:
self.data.remove(b)
def send(self):
#send data with requests
pass
MainApp().run()
buildozer.spec:
requirements = python3,kivy==2.2.0,kivymd,urllib3, requests, chardet, certifi, idna,
osx.python_version = 3
osx.kivy_version = 1.9.1
android.permissions = android.permission.INTERNET
android.api = 33
android.minapi = 21
在电脑上一切正常,除了构建中的 kivy 版本是 2.1.0 而不是 2.2.0 当我尝试搜索所有内容都指向以错误的方式使用小部件的 id 时(正如我所理解的),但我无法弄清楚任何事情,因为在电脑上一切正常 这只是我找到的链接,没有帮助: StackOverFlow 类似问题
您可能正在尝试将应用程序升级到较新的 kivy/kivymd 版本,或者您正在处理非常旧的代码,因为“IconLeftWidget”和“IconRightWidget”不是 kivy/kivymd 2.1x/2.2x 对象。它们是 kivymd==1.1.1 对象。或者您在您的电脑和 Android 设备上使用不同的 kivymd 版本。检查您的 kivymd 版本并升级您的对象。